Anfänger

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
blue_loop
User
Beiträge: 4
Registriert: Mittwoch 2. August 2017, 11:04

Mittwoch 2. August 2017, 12:18

Hallo an Alle!
Ich habe erst vor zwei Stunden mit Python angefangen, also ein Anfänger...
Aus einem Tutorial heraus versuche ich mir die Sprache anzueignen. Bei einer Aufgabe habe ich ein kleines Verständnissproblem und brauche diesbezüglich eine kurze Erklärung,wie die Schleife funktioniert.(vielleicht nur anhand der ersten drei Durchläufe...)

Vielen Dank im Voraus!

>>> # Fibonacci-Folge:
... # Die Summe der letzten beiden Elemente ergibt das nächste
... a, b = 0, 1 // hier wird a=0 und b=1 gesetzt
>>> while b < 10: // wenn b kleiner 10 ist, dann nochmal durchlaufen
... print(b) // b ausgeben
... a, b = b, a+b // hier hängt es ein bißchen
...
1
1
2
3
5
8
Üpsilon
User
Beiträge: 188
Registriert: Samstag 15. September 2012, 19:23
Wohnort: Altschauerberg 8 in 91448 Emskirchen

Mittwoch 2. August 2017, 12:28

Code: Alles auswählen

a, b = b, a+b
macht im Prinzip so etwas wie

Code: Alles auswählen

a = b
b = a + b
nur dass bei der ersten Variante beide Zuweisungen auf einmal gemacht werden und bei der zweiten Variante nacheinander, und hier wäre es falsch, die Zuweisungen nacheinander zu machen, weil sich dann der Wert von a vor dem Addieren ändern würde, aber man ja den unveränderten Wert addieren möchte.
Zuletzt geändert von Üpsilon am Mittwoch 2. August 2017, 12:42, insgesamt 1-mal geändert.
PS: Die angebotene Summe ist beachtlich.
Sirius3
User
Beiträge: 7779
Registriert: Sonntag 21. Oktober 2012, 17:20

Mittwoch 2. August 2017, 12:33

@Üpsilon: korrekt wäre es also, Zwischenspeicher einzuführen

Code: Alles auswählen

a, b = b, a+b
# ist das selbe wie
c = b
d = a + b
a = c
b = d
blue_loop
User
Beiträge: 4
Registriert: Mittwoch 2. August 2017, 11:04

Mittwoch 2. August 2017, 12:52

OK...bin etwas verwirrt...

1.Durchlauf
a=0
b=1
---> b=1 ---> 1<10 ---> print 1

2. Durchlauf
a=b --> 0=1
b=a+b --> 1=0+1
---> b=1 ---> 1<10 ---> print 1

3. Durchlauf
a=b ---> 1=1
b=a+b ---> 2=1+1
---> b=2 ---> 2<10 ---> print 2

4.Durchlauf
a=b ---> 1=2
b=a+b ---> 3=2+1
---> b=3 ---> 3<10 ---> print 3

So ungefähr...?!?
Üpsilon
User
Beiträge: 188
Registriert: Samstag 15. September 2012, 19:23
Wohnort: Altschauerberg 8 in 91448 Emskirchen

Mittwoch 2. August 2017, 12:56

@Sirius: zur Not gehts ja auch ohne Komma und ohne Zwischenspeicher, aber das erfordert ein bisschen "Akrobatik".

Code: Alles auswählen

a=a+b
b=b-a
PS: Die angebotene Summe ist beachtlich.
Üpsilon
User
Beiträge: 188
Registriert: Samstag 15. September 2012, 19:23
Wohnort: Altschauerberg 8 in 91448 Emskirchen

Mittwoch 2. August 2017, 13:01

@blue_loop
a=b --> 0=1
b=a+b --> 1=0+1
Wenn du mit "0=1" meinst, dass die 0, die in a gespeichert ist, durch eine 1 ersetzt wird, dann ja :D
PS: Die angebotene Summe ist beachtlich.
blue_loop
User
Beiträge: 4
Registriert: Mittwoch 2. August 2017, 11:04

Mittwoch 2. August 2017, 13:06

Üpsilon hat geschrieben:@blue_loop
a=b --> 0=1
b=a+b --> 1=0+1
Wenn du mit "0=1" meinst, dass die 0, die in a gespeichert ist, durch eine 1 ersetzt wird, dann ja :D
genau.... a=0 und wird durch die 1 ersetzt...
blue_loop
User
Beiträge: 4
Registriert: Mittwoch 2. August 2017, 11:04

Mittwoch 2. August 2017, 13:06

dann glaube ich habe ich es verstanden...

Danke für die Hilfe an euch beiden...
Antworten