At My Fingertips
Sie haben also zwei Fehler korrigiert: den print-Befehl hinzugefügt, und die Berechnung geändert.
Denken Sie auch daran, am Schluss des Funktionskopfs den Ausgabetyp mit def name(...) -> float:
zu fixieren. So wird manchmal auch gemeldet, dass die Ausgabe fehlerhaft ist, anstatt dass einfach nichts passiert.
Damit eine Funktion eine Ausgabe habt, muss laut obiger Beispiele auch Folgendes zutreffen:
return m
- dies fehlt in der Funktion multipliziere
.print
oder show_graphic
:show_graphic(viertelkreis(50, blue))
print(addiere(1,2,3))
Man kann aber auch Funktionen mit Seiteneffekten einbauen:
Solche Funktionen mit Seiteneffekten müssen dann nicht mehr in einem print
- oder show_graphic
-Befehl als Parameter aufgerufen werden.
Diese sind aber unrein, weil sie für die weitere Verwendung oft nicht mehr geeignet sind. Vielleicht haben Sie schon etwas ähnliches erlebt, als Sie Ihren Code für die Toolbox nicht sauber gereinigt haben und dann immer zu viele Formen (Herze, Halbkreise, ...) beim Wiederverwenden erschienen.
->
AusgabetypIn den obigen Aufgaben haben Sie auch gesehen, dass die Fixierung von Parameter- und Datentypen nützlich sein kann. So können z. B. hilfreiche Fehlermeldungen zum falschen Datentyp ausgegeben werden.
def multipliziere(a: float, b: float, c: float) -> float:
return a * b * c
Denken Sie daran, dass Funktionen ohne Ausgabewerte (ohne return
) keinen Ausgabetyp mit ->
angeben dürfen.
Schreiben Sie eine Funktion, die als Seiteneffekt die Quadratzahl ausgibt.
Lösungsvorschlag:
def quadratzahl(z: float):
print(z * z)
quadratzahl(5)
Schreiben Sie eine Funktion, die die Kubikzahl zurückgibt (ohne Seiteneffekt).
Lösungsvorschlag:
def kubikzahl(z: float):
return z * z * z
print(kubikzahl(5))
Schreiben Sie eine Funktion, die als Seiteneffekt einen Dreiviertelkreis ausgibt.
Lösungsvorschlag:
from pytamaro import Color, circular_sector, show_graphic, cyan
def dreiviertelkreis_seiteneff(radius: float, farbe: Color):
show_graphic(circular_sector(radius, 360-90, farbe))
dreiviertelkreis_seiteneff(100, cyan)
Lösung: Sie können zwar die Parameter verändern (Grösse und Farbe), aber Sie können den Dreiviertelkreis nicht drehen, da sie ihn als fertige Ausgabe erhalten - nicht als veränderbare Grafik.
Erstellen Sie einen Pacman.
radius
und farbe
erhält und einen Dreiviertelkreis zurückgibt.radius
erhält und einen Pacman zurückgibt.Rufen Sie in der zweiten Funktion die erste Funktion auf.
def dreiviertelkreis(radius: float, farbe: Color) -> Graphic:
return circular_sector(radius, 360-90, farbe)
def pacman(radius: float) -> Graphic:
return rotate(45, dreiviertelkreis(radius, yellow))
show_graphic(pacman(100))
Nehmen Sie den Pacman in Ihre Toolbox auf. Achten Sie darauf, dass je nur eine Funktion aufnehmen.
This activity has been created by Gall and is licensed under CC BY-SA 4.0.
Funktionen: Rückgabewert und Seiteneffekte
PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI
Privacy Policy • Platform Version c3a8286 (Mon, 14 Oct 2024 13:30:28 GMT)