Frage zu parameter übergabe bei "in range()

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.
Jimm
User
Beiträge: 5
Registriert: Montag 30. Januar 2006, 12:35
Kontaktdaten:

Frage zu parameter übergabe bei "in range()

Beitragvon Jimm » Mittwoch 27. September 2006, 10:36

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
george
User
Beiträge: 109
Registriert: Mittwoch 11. Januar 2006, 20:28
Wohnort: Berlin

Beitragvon george » Mittwoch 27. September 2006, 10:41

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
Monk
User
Beiträge: 16
Registriert: Montag 28. August 2006, 11:27

Beitragvon Monk » Mittwoch 27. September 2006, 11:05

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
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

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

Beitragvon Joghurt » Samstag 30. September 2006, 09:31

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.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder