Der Wert einer Variable in einer while-Schleife muß den Wert nicht ändern. Mach mal:
Code: Alles auswählen
a = 1
while a <= 10:
print "Ich bin jetzt in der Schleife:", a
und guck was passiert. Wahrscheinlich nicht das was Du denkst.
Code: Alles auswählen
a = 1
while a <= 10:
print "Ich bin jetzt in der Schleife:", a
a += 1
macht wahrscheinlich schon eher das was Du denkst.
Die while-Schleife in Python entspricht (ungefähr) dem was man in anderen Programmiersprachen als Zählschleife bezeichnet, auch dort muß man explizit angeben wenn irgendwas mit dem Namen aus der Bedingung passieren soll, so dass die Bedingung irgendwann mal den booleschen Zustand ändert.
Eine for-Schleife in Python ist eine Besonderheit, und zwar ist es keine Zählschleife, sondern eine Kurzschreibweise für eine Iterator-Schleife:
iteriert über die Elemente des Container (1,2,3,4,5), was zufällig ein Tupel ist, und über Tupel kann man iterieren. Folgendes geht nämlich zum Beispiel nicht:
Code: Alles auswählen
for i in 1:
print "Geht nicht! Kommt Fehler vor mir. ;-)"
Über Integer kann man nicht iterieren. Eine Iteratorschleife hat keine explizite Abbruchbedingung wie man sieht (in der Zählschleife while ist es eben das a < 10), sondern die Iteration hört auf wenn es keine Elemente in dem Objekt mehr gibt über die man noch laufen muß. Du kannst in so einer Schleife die Variable die die Objekte aufnimmt über die iteriert wird beliebig ändern, da es eben im Gegensatz zur Bedeutung von a keine Bedeutung für die (implizite) Abbruchbedingung hat.
Hmm... So, ich hoffe das erklärt den Unterschied so ein bisschen... Für alles andere: les ein Buch über "Einführung in die Programmierung," Schleifen sind wahnsinnig wichtige Konzepte die man verstehen muß, damit man überhaupt anfangen kann zu programmieren...
--- Heiko.