for-Schleife

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ibo
User
Beiträge: 3
Registriert: Montag 22. November 2021, 22:13

zahl = 0
for i in range(4):
zahl += 3*i
print (zahl)

Ich bin absoluter Anfänger also nicht wundern. Warum werden als Zahlen nicht 0, 3, 6, 9 ausgegeben sondern 0, 3, 9, 18.
Es wird ja wie folgt gerechnet:
0 + 3 * 0 = 0
0 + 3* 1 = 3
0 + 3 * 2 = 6
0 + 3 * 3 = 9
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wieso denkst du, Zahl wäre jedes Mal 0, wenn die Schleife in die nächste Runde geht? Du setzt das doch VOR der Schleife.
Benutzeravatar
__blackjack__
User
Beiträge: 14185
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Vor allem wäre es ja auch sinnlos zu jedem Ergebnis in der Schleife 0 dazu zu addieren, weil das ja gar keinen Effekt hätte.
“Every thinking person fears nuclear war and every technological nation plans for it. Everyone knows
it's madness, and every country has an excuse.” — Carl Sagan, Cosmos, Episode 13: Who Speaks for Earth?
ibo
User
Beiträge: 3
Registriert: Montag 22. November 2021, 22:13

Stimmt auch wieder. Nur wie wird denn dann gerechnet, wenn zahl die Schleife durchläuft?

0+3*0=0
1+3*1=4
2+3*2=8
3+3*3=12

So stimmen die Zahlen ja immer noch nicht.
Benutzeravatar
pillmuncher
User
Beiträge: 1532
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

Code: Alles auswählen

a += b entspricht a = a + b.

zahl += 3 * i entspricht folglich:

zahl = zahl + 3 * i

0 == 0 + 3 * 0
 \
  \
   \
    \
3 == 0 + 3 * 1
 \
  \
   \
    \
9 == 3 + 3 * 2
 \
  \
   \
    \
     \
18 == 9 + 3 * 3
In specifications, Murphy's Law supersedes Ohm's.
ibo
User
Beiträge: 3
Registriert: Montag 22. November 2021, 22:13

Danke vielmals!
Antworten