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: 14529
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: 13080
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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
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: 1484
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