302
Objekte und Methoden
Kapitel
11
»krange()«
Als Beispiel möchte ich hier eine Funktion definieren, die ähnlich wie
ran-
ge()
funktioniert, aber Kommazahlen zurückgibt. Erinnere dich:
>>> list(range(7,15,3))
[7, 10, 13]
range(7,15,3)
berechnet alle Zahlen, beginnend mit 7, mit Abstand 3,
die kleiner als 15 sind.
list(range(7, 15, 3))
ergibt dann eine Liste
mit diesen Zahlen. Wird das dritte Argument nicht angegeben, hat es den
Standardwert 1.
range()
kann auch mit nur einem Argument aufgerufen
werden, das als Stoppwert interpretiert wird. Der Startwert hat dann den
Standardwert 0.
>>> list(range(4))
[0, 1, 2, 3]
Wir wollen eine Funktion
krange()
zunächst so definieren, dass sie eine
Liste von Dezimalzahlen zurückgibt.
krange()
soll mit Kommazahlen ar-
beiten und zwar folgendermaßen:
>>> krange(0.75, 4.3, 1.75)
[0.75, 2.5, 4.25]
Ich gebe dir eine Definition dieser Funktion an, die du dir selbst durchden-
ken solltest. Es geht mir hier nicht um die Erklärung des Algorithmus, son-
dern um eine Demonstration, wie Listen-Objekte erzeugt werden können.
>
Gib den Code der folgenden Funktion im Editor in eine Datei
listen-
zeug.py
ein, speichere ihn und führe ihn aus.
def krange(start, stop, schritt=1):
zahlenliste = []
element = float(start) # macht aus start eine Kommazahl!
while element < stop:
zahlenliste.append(element)
element = element + schritt
return zahlenliste
Erklärung: In der ersten Zeile wird ein leeres Listenobjekt erzeugt und er-
hält den lokalen Namen
zahlenliste
. Dann wird in der
while
-Schleife
bei jedem Schleifendurchgang ein Element an
zahlenliste
angehängt
und somit die Liste geändert. Verstehst du also, warum wir hier eine Liste
verwenden? Mit Tupeln wäre das nicht möglich, denn Tupel sind unverän-
derbar. Zuletzt wird das Listenobjekt zurückgegeben. Beachte, dass in die-

Get Python für Kids now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.