Seite 1 von 1

Anfänger

Verfasst: Mittwoch 2. August 2017, 12:18
von blue_loop
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

Re: Anfänger

Verfasst: Mittwoch 2. August 2017, 12:28
von Üpsilon

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.

Re: Anfänger

Verfasst: Mittwoch 2. August 2017, 12:33
von Sirius3
@Ü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

Re: Anfänger

Verfasst: Mittwoch 2. August 2017, 12:52
von blue_loop
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...?!?

Re: Anfänger

Verfasst: Mittwoch 2. August 2017, 12:56
von Üpsilon
@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

Re: Anfänger

Verfasst: Mittwoch 2. August 2017, 13:01
von Üpsilon
@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

Re: Anfänger

Verfasst: Mittwoch 2. August 2017, 13:06
von blue_loop
Ü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...

Re: Anfänger

Verfasst: Mittwoch 2. August 2017, 13:06
von blue_loop
dann glaube ich habe ich es verstanden...

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