Seite 1 von 1

Frage zu parameter übergabe bei "in range()

Verfasst: Mittwoch 27. September 2006, 10:36
von Jimm
hi.
bin neulingin python und grade auf ein stück code gestoßen, dass sich mir nicht erschließt bzw. in meinem python buch for dumies nicht steht, hoffe hier auf hilfe:

for i in range (4,1,-1)

was sagt die -1 aus. das ich bei 4 beginne und dann in jedem durchlauf -1 subtrahiere bis ich 1 als abbruchwert erreicht habe?

thx

Verfasst: Mittwoch 27. September 2006, 10:41
von george
Hallo Jimm

Die "4" ist der Startwert, die "1" der Endwert und die "-1" die "Veränderung".
In deinem Fall heißt dies, dass du in jedem Schleifendurchgang 1 subtrahierst.

greets george

Verfasst: Mittwoch 27. September 2006, 11:05
von Monk
Nicht ganz richtig: range(start, stop, step) erzeugt eine Liste, die mit for durchiteriert werden kann. Zur Verdeutlichung folgender Beispielcode:

Code: Alles auswählen

>>> r = range(4,1,-1)
>>> r
[4, 3, 2]
>>> for i in r:
... 	print i, " ",
... 
 4   3   2  
Ach ja: Du kannst Dir auch die eingebaute Hilfe anzeigen lassen:

Code: Alles auswählen

>>> print range.__doc__
range([start,] stop[, step]) -> list of integers

Return a list containing an arithmetic progression of integers.
range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0.
When step is given, it specifies the increment (or decrement).
For example, range(4) returns [0, 1, 2, 3].  The end point is omitted!
These are exactly the valid indices for a list of 4 elements.
>>> 
Gruß, der Monk

Re: Frage zu parameter übergabe bei "in range()

Verfasst: Samstag 30. September 2006, 09:31
von Joghurt
Jimm hat geschrieben:und dann in jedem durchlauf -1 subtrahiere
Nein, du addiest -1 oder subtrahierst 1. Wenn du von 4 die Zahl -1 abziehst, bleibt 5 übrig.