257
Eine Funktion, die einen String zurückgibt
Länge: 1, Breite: 9, Fläche: 9
Länge: 2, Breite: 8, Fläche: 16
Länge: 3, Breite: 7, Fläche: 21
Länge: 4, Breite: 6, Fläche: 24
Länge: 5, Breite: 5, Fläche: 25
Länge: 6, Breite: 4, Fläche: 24
Länge: 7, Breite: 3, Fläche: 21
Länge: 8, Breite: 2, Fläche: 16
Länge: 9, Breite: 1, Fläche: 9
>>>
Sieht so aus, als wäre das Rechteck mit der größten Fläche das Quadrat.
Anmerkung: Wenn wir die Suche nach der größten Rechteckfläche verfei-
nern und in einem kleineren Bereich rund um a = 5 weitersuchen wollen,
müssen wir beachten, dass
range()
stets nur
ganzzahlige
Werte an die
for-
Schleife liefert. Das könnte etwa so aussehen:
>
Mach mit!
>>> for n in range(45, 55):
l = n/10
b = 10 - l
f = rechteckflaeche(l,b)
print("Länge: {0}, Breite: {1}, Fläche: {2}".format(l, b, f))
Das Ergebnis dieser Anweisung wird unsere oben formulierte Vermutung
bestätigen!
Forschungstipp:
Überprüfe, ob auch für andere Rechteckumfänge als 20
gilt, dass das Quadrat die größte Fläche hat.
Forschungstipp:
Wie verhält es sich mit den Umfängen von Rechtecken,
wenn der Flächeninhalt gegeben ist? Welches davon hat den kleinsten bzw.
größten Umfang? Untersuche zunächst Rechtecke mit dem Flächeninhalt
25 und unterschiedlichen Paaren von Länge und Breite.
Eine Funktion, die einen String
zurückgibt
Funktionen mit Wert in Python müssen nicht immer nur Zahlen, sondern
sie können ganz beliebige Objekte zurückgeben. Weil du noch nicht sehr
viele Typen von Objekten kennst – das kommt weiter hinten! –, versuchen
wir’s einmal mit einer Funktion, die einen String zurückgibt.
258
Funktionen mit Wert
Kapitel
1
0
Stelle dir vor, du hast einen Haufen von Stäbchen und willst diese neben-
einander auflegen. Damit du leichter erkennst, wie viele es sind, beschließt
du, sie in Pakete zu je fünf aufzulegen. Falls dann noch welche übrig blei-
ben, machst du aus ihnen ein kleineres Paket. Ich meine das so:
>>> reihe(12)
'IIIII IIIII II'
>>> reihe(19)
'IIIII IIIII IIIII IIII'
>>> reihe(3)
'III'
reihe
soll also eine Funktion sein, die die Anzahl der Stäbchen als Argu-
ment übernimmt und einen String aus
I
s und Leerzeichen zurückgibt.
Um dies zu programmieren, müssen wir zunächst die Anzahl der Pakete
und die Anzahl der restlichen Stäbchen ermitteln. Für die Pakete müssen
wir die Stäbchenzahl ganzzahlig durch 5 dividieren. Das kennst du schon:
>>> 12 // 5
2
>>> 19 // 5
3
>>> 3 // 5
0
Für die restlichen Stäbchen können wir einen dritten Divisionsoperator
verwenden, den du vielleicht sogar schon selbst (bei der Arbeit mit Kapi-
tel 1) entdeckt hast: den »Modulo-Operator«
%
. Der Ausdruck
a % b
liefert
den Rest bei der Division von
a
durch
b
:
>>> 12 % 5
2
>>> 19 % 5
4
>>> 3 % 5
3
Wenn du dich nun erinnerst, dass du Strings mit
*
vervielfachen und mit
+
verketten kannst, bist du schnell am Ziel:
>>> s = 19
>>> h = 19 // 5
>>> r = 19 % 5
>>> h
3
>>> "IIIII " * h
'IIIII IIIII IIIII '
>>> r

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.