[informatica] python code

Moderators: ArcherBarry, Fuzzwood

Reageer
Berichten: 13

[informatica] python code

Weet er iemand wat er fout is met mijn code in python

De opdracht:
(zie foto)

Mijn code:
import math
r = float(input("geef r "))
R = float(input("geef R "))

n = 0.83 * ((R**2)/(r**2)) - 1.9

Or = math.pi * (r**2)
OR = math.pi * (r**2)

beddekingsgraad = math.floor(n) * (Or / OR)
P = beddekingsgraad * 100


print(f'{math.floor(n)} smaller circles cover {P:.2f}% of the larger circle')
Bijlagen
Schermafbeelding 2020-09-27 om 12.33.20.png

Technicus
Berichten: 1.151

Re: [informatica] python code

Wij kunnen het wel oplossen, maar je hebt er meer aan als je zelf leert zoeken.
Krijg je een foutmelding? Zo ja, welke?
Wat heb je zelf al geprobeerd om de fout te vinden?

Je kan bijvoorbeeld na elke regel een print statement zetten, waarmee je controleert of je berekening/invoer gelukt is.

Daarnaast is handig om je code op het forum tussen [ code ] tags te zetten (maar dan zonder spaties).
Dat leest makkelijker. Dus:

[ code] (zonder spatie)

Code: Selecteer alles

Hier staat dan je code
[ /code] (zonder spatie)
Laatst gewijzigd door CoenCo op zo 27 sep 2020, 13:03, 1 keer totaal gewijzigd.

Gebruikersavatar
Berichten: 2.906

Re: [informatica] python code

anelies4561 schreef: zo 27 sep 2020, 12:34 Or = math.pi * (r**2)
OR = math.pi * (r**2)
Je doet hier twee keer hetzelfde. Die tweede lijn moet natuurlijk zijn;

OR = math.pi * (R**2)
Laatst gewijzigd door Math-E-Mad-X op zo 27 sep 2020, 13:01, 2 keer totaal gewijzigd.

Gebruikersavatar
Moderator
Berichten: 9.896

Re: [informatica] python code

Vertel waarom de code fout is.

Krijg je een foutmelding?
Of werkt het programma maar is/zijn de uitkomst(en) fout?
Hoe weet je dan dat de uitkomst(en) fout zijn?

Berichten: 13

Re: [informatica] python code

Math-E-Mad-X schreef: zo 27 sep 2020, 13:00
anelies4561 schreef: zo 27 sep 2020, 12:34 Or = math.pi * (r**2)
OR = math.pi * (r**2)
Je doet hier twee keer hetzelfde. Die tweede lijn moet natuurlijk zijn;

OR = math.pi * (R**2)
Ahn klopt dit was de fout, dankjewel!

Berichten: 13

Re: [informatica] python code

Ook bedankt Xilvo en CoenCo voor jullie hulp :) de fout was dat ik een r ipv R had geschreven

Gebruikersavatar
Berichten: 2.906

Re: [informatica] python code

Graag gedaan!

Overigens ben ik het eens met CoenCo dat het eigenlijk beter is als je zelf probeert uit te zoeken waar het mis gaat, bijvoorbeeld door na elke regel het tussenresultaat te printen.

Berichten: 7.068

Re: [informatica] python code

Ik denk dat in dit geval de belangrijke tip is: Kies betekenisvolle variabele-namen. r, R, Or en OR lijken enorm op elkaar. Aan het volgende stukje code is bijvoorbeeld veel beter te zien dat er iets raars gebeurt:

Code: Selecteer alles

oppervlakKleineCirkel = math.pi * (radiusKleineCirkel**2)
oppervlakGroteCirkel = math.pi * (radiusKleineCirkel**2)
Dit wordt belangrijker naarmate je grotere stukken code hebt (of langer je eigen code niet hebt gezien). Waar precies de grens zit tussen langere namen en te lange namen is iets dat altijd wel een mysterie zal blijven. :D

Technicus
Berichten: 1.151

Re: [informatica] python code

EvilBro schreef: ma 28 sep 2020, 10:57 Ik denk dat in dit geval de belangrijke tip is: Kies betekenisvolle variabele-namen. r, R, Or en OR lijken enorm op elkaar. Aan het volgende stukje code is bijvoorbeeld veel beter te zien dat er iets raars gebeurt:

Code: Selecteer alles

oppervlakKleineCirkel = math.pi * (radiusKleineCirkel**2)
oppervlakGroteCirkel = math.pi * (radiusKleineCirkel**2)
Dit wordt belangrijker naarmate je grotere stukken code hebt (of langer je eigen code niet hebt gezien). Waar precies de grens zit tussen langere namen en te lange namen is iets dat altijd wel een mysterie zal blijven. :D
Waar de grens precies zit is misschien een mysterie, maar dit voorbeeld zit wel heel ver over de grens van wat handig is.
Wat nog veel belangrijker is. "or" is een ingebouwde functie, en variabelen die teveel op interne functies lijken, moet je zowiezo proberen te vermijden.

Reageer