Funktionen ohne Parameter und ohne Rückgabewert
Wiedergabe stellt eine Verbindung zu YouTube her.
Das Wichtigste in aller Kürze
- Um Programmcode mehrmals zu verwenden, kann man eine Funktion definieren. Ein solche kann man dann an anderen Stellen im Programm aufrufen.
- Ein Beispiel für eine Funktion:
def baum(): setPenWidth(40) setPenColor("brown") penDown() forward(100) setPenColor("green") dot(100) penUp() back(100)
- Die leeren Klammern muss man schreiben!
- Nachdem man Funktionen definiert hat, kann man das Hauptprogramm schreiben, d. h., Funktionen müssen immer zuerst im Programmtext stehen, weil Python sonst im Hauptprogramm nicht weiß, was damit gemeint sein soll.
- Ein vollständiges Beispiel:
from gturtle import * # Funktion für den Baum def baum(): setPenWidth(40) setPenColor("brown") penDown() forward(100) setPenColor("green") dot(100) penUp() back(100) # Funktion für das Haus def haus(): setPenWidth(2) setPenColor("black") penDown() forward(100) right(90) startPath() setPenColor("red") forward(100) left(135) forward(71) left(90) forward(71) setFillColor("red") setPenColor("black") fillPath() left(90) forward(141) left(135) forward(100) left(135) forward(141) left(135) forward(100) penUp() back(100) left(90) # Funktion Abstand def abstand(): right(90) forward(100) left(90) # Hauptprogramm makeTurtle() baum() abstand() haus() abstand() baum()
Übung
Aufgabe. Entwickle für das Beispiel aus dem Clip wenigstens eine weitere Funktion und verwende diese im Hauptprogramm.
Funktionen mit Parameter und ohne Rückgabewert
Wiedergabe stellt eine Verbindung zu YouTube her.
Das Wichtigste in aller Kürze
- Man kann bei einer Funktion verlangen, dass ein Parameter angegeben wird. Das ist z. B. auch schon bei
forward
der Fall, denn sonst wüsste die Turtle nicht, wie weit sie laufen soll. - Hier sehen wir eine Funktion, bei der ein Wert angegeben werden muss:
def baum(pHoehe): setPenWidth(40) setPenColor("brown") penDown() forward(pHoehe) setPenColor("green") dot(100) penUp() back(pHoehe)
- Bei den Funktionen im letzten Clip haben die leeren Klammern angezeigt, dass kein Parameter verlangt wird.
- Beim Aufruf muss man nun einen Wert angeben!
- Ein vollständiges Programm:
from gturtle import * # Funktion für den Baum def baum(pHoehe): setPenWidth(40) setPenColor("brown") penDown() forward(pHoehe) setPenColor("green") dot(100) penUp() back(pHoehe) # Funktion für das Haus def haus(): setPenWidth(2) setPenColor("black") penDown() forward(100) right(90) startPath() setPenColor("red") forward(100) left(135) forward(71) left(90) forward(71) setFillColor("red") setPenColor("black") fillPath() left(90) forward(141) left(135) forward(100) left(135) forward(141) left(135) forward(100) penUp() back(100) left(90) def abstand(weite): right(90) forward(weite) left(90) # Hauptprogramm makeTurtle() baum(100) abstand(10) haus() abstand(125) haus() abstand(75) baum(50)
Übung
Aufgabe. Modifiziere Deine Funktionen aus dem letzten Abschnitt so, dass sie jeweils mit einem Parameter arbeiten.
Funktionen mit Rückgabewert
Wiedergabe stellt eine Verbindung zu YouTube her.
Das Wichtigste in aller Kürze
- Einige Funktionen liefern als Ergebnis einen Wert, den man im Hauptprogramm benutzen kann.
- Zum Beispiel kann man mit
getX()
die aktuelle x-Koordinate der Turtle erhalten und diese speichern oder für eine Bedingung in einer Schleife verwenden. - Möchte man selbst eine Funktion mit Rückgabewert erstellen, benötigt man die Anweisung
return
. - Ein Beispiel:
def summe(pZahl): zaehler = 1 ergebnis = 0 while zaehler <= pZahl: ergebnis = ergebnis+zaehler zaehler = zaehler+1 return ergebnis
- Hier noch ein vollständiges Programm:
# Funktion Summe def summe(pZahl): zaehler = 1 ergebnis = 0 while zaehler <= pZahl: ergebnis = ergebnis+zaehler zaehler = zaehler+1 return ergebnis # Hauptprogramm erstes_ergebnis = summe(10) print("Die Summe der natürlichen Zahlen von 1 bis 10 ist:") print(erstes_ergebnis) zweites_ergebnis = summe(100) print("Die Summe der natürlichen Zahlen von 1 bis 100 ist:") print(zweites_ergebnis) print("Die Summe der natürlichen Zahlen von 11 bis 100 ist:") print(zweites_ergebnis - erstes_ergebnis) print("Die Summe der natürlichen Zahlen von 901 bis 1000 ist:") print(summe(1000) - summe(900))
Übungen
Aufgabe 1. Die Turtle soll den Rand des Fensters mit Punkten schmücken:
Entwickle ein geeignetes Programm mithilfe von Funktionen mit Rückgabewert der Turtle.
Aufgabe 2. Die Turtle soll 100 mal an eine zufällige Position springen. Befindet sie sich in der linken Hälfte des Fensters, soll sie einen roten Punkt zeichnen, sonst einen blauen:
Entwickle ein geeignetes Programm .
Aufgabe 3. Entwickle eine Funktion istGerade(pZahl)
, die True
zurückgibt falls pZahl
gerade ist und ansonsten false
.
Dieses Hauptprogramm kann zum Testen verwendet werden:
# Hauptprogramm erstes_ergebnis = istGerade(10) print("Die Zahl 10 ist gerade:") print(erstes_ergebnis) zweites_ergebnis = istGerade(33) print("Die Zahl 33 ist gerade:") print(zweites_ergebnis)