Seite 1 von 1
Weiß was der Code macht aber nicht wieso
Verfasst: Donnerstag 10. September 2015, 19:32
von YourMTTV
Hallo,
ich verstehe diesen Code nicht ganz :
Code: Alles auswählen
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
for me in a:
if me % 2 == 0:
print me
Ich weiß zwar das er mir alle zahlen ausgibt, die gerade sind aber ich weiß nicht wieso.
in der "for" schleife geht er alle zahlen durch und teilt sie dann durch 2. Aber das "me % 2 == 0" in der If klammer heißt doch, dass er eigentlich nur die zaheln ausgeben müsste die durch 2 geteilt null ergeben. oder?
Danke für die aufklärung.
MFG Tom
Re: Weiß was der Code macht aber nicht wieso
Verfasst: Donnerstag 10. September 2015, 20:02
von Üpsilon
Das %-Zeichen steht niemals für Division. Hier steht es für
Modulo. Das ist der Divisionsrest.
Re: Weiß was der Code macht aber nicht wieso
Verfasst: Freitag 11. September 2015, 06:49
von noisefloor
Hallo,
dass er eigentlich nur die zaheln ausgeben müsste die durch 2 geteilt null ergeben. oder?
Das würde ja so wie so nur auf Null (0) zutreffen

Null durch irgendwas ist null, bei allen anderen Divisionen kannst du nicht null als Ergebnis bekommen.
`zahl % 2 == 0` ist ein Test auf gerade Zahlen, weil wenn `zahl`gerade ist, ist der Rest / Modulo immer null. Entsprechend wäre `zahl % 2 != 0` ein Test auf ungerade Zahlen.
Gruß, noisefloor
Re: Weiß was der Code macht aber nicht wieso
Verfasst: Freitag 11. September 2015, 09:41
von BlackJack
@noisefloor: Naja:
Code: Alles auswählen
In [1]: 0 / 0
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
<ipython-input-1-b761d17a0499> in <module>()
----> 1 0 / 0
ZeroDivisionError: integer division or modulo by zero
In [2]: 0 / 2
Out[2]: 0
In [3]: 1 / 2
Out[3]: 0
Re: Weiß was der Code macht aber nicht wieso
Verfasst: Freitag 11. September 2015, 11:40
von noisefloor
Hallo,
ok, mit 0/0 hast du recht - der Rest sind aber das Divisionsverhalten von Python (und anderen Programmiersprachen). Mathematisch ist 1/2 nicht 0.
Abgesehen davon solltest du mal deine Python-Version updaten. Bei mir ist das so:
Gruß, noisefloor
Re: Weiß was der Code macht aber nicht wieso
Verfasst: Freitag 11. September 2015, 18:28
von BlackJack
@noisefloor: Wieso updaten? Ich habe die neueste 2.7er, ist also aktuell. Die Unicode-Probleme bei der 3.x können sich andere gerne antun.
