… oder Miniprogramme oder: Wie man grössere Programme übersichtlich gestaltet.
Erinnerung zur Turtle-Grafik: Das Grundgerüst eines Turtle-Programms sieht wie folgt aus.
from turtle import * % Hier Programmcode % einfügen. exitonclick()
Öffne ein neues Python-Programm.
dreieck. Wenn man diese Funktion aufruft, soll die Turtle ein gleichseitiges Dreieck der Seitenlänge 100 zeichnen.triangolo mit einem Parameter a. Wenn man diese Funktion aufruft, soll die Turtle ein gleichseitiges Dreieck der Seitenlänge a zeichnen.triangolo das Gewünschte tut.vieleck mit zwei Parametern a und n. Wenn man diese Funktion aufruft, soll die Turtle ein reguläres $n$-Eck der Seitenlänge a zeichnen.vieleck das Gewünschte tut.pensize(10)) oder Wechsel der Zeichenfarbe (z. B. pencolor(“blue”)).
Mit dem Schlüsselwort return erreicht man, dass eine Funktion einen Wert retourniert. Beachte: Sobald in der Definition einer Funktion ein Return-Befehl erreicht wird, wird die Ausführung der Funktion beendet.
def wurzel(n): return n ** 0.5 def betrag(x): if x >= 0: return x else: return -x def ist_durch_drei_teilbar(n): return n % 3 == 0 def arithmetisches_mittel(a, b): return (a + b) / 2 print(wurzel(2)) print(wurzel(3)) print(betrag(3)) print(betrag(-5)) print(ist_durch_drei_teilbar(111)) print(ist_durch_drei_teilbar(112)) print(arithmetisches_mittel(10, 100))
Öffne ein neues Python-Programm (Name etwa aufgabe-funktionen-mit-rueckgabewert.py).
zwei_hoch, die 2 in die gewünschte Potenz erhebt. Z. B. soll der Funktionsaufruf zwei_hoch(10) die Zahl $2^{10}=1024$ liefern.print(zwei_hoch(10)). Bonus: Gib mit einer Schleife die ersten 10 Zweierpotenzen $2^0, 2^1, \dots, 2^{10}$ aus.geometrisches_mittel, die das geometrische Mittel $\sqrt{a \cdot b}$ zweier nicht-negativer Zahlen berechnet. Z. B. soll der Funktionsaufruf geometrisches_mittel(4, 9) die Zahl $6$ liefern. minimum, die das Minimum (= die kleinere) zweier Zahlen berechnet. Z. B. soll der Funktionsaufruf minimum(-3, -5) die Zahl $-5$ liefern.
Lies die Definition der Funktion was_berechnet_diese Funktion und finde (möglichst ohne Computereinsatz) heraus, was sie berechnet!
Einnerung: // und % berechnen Wert (= Ganzzahlquotient) und Rest der ganzzahligen Division.
def was_berechnet_diese_funktion(n): s = 0 while n > 0: s = s + n % 10 n = n // 10 return s
Wer mehr Lust auf Primzahlen als auf Turtle-Grafik hat, bearbeite zuerst Aufgabe 5.
Lass das folgende Programm laufen und steuere die Turtle mit den vier Pfeiltasten und den Tasten “p” und “q”. Die Turtle sagt dir, dann, was du zu tun hast!
Bonus: Erweitere das Programm selbständig: Etwa Farbwechsel, Ändern der Liniendicke, Anheben des Zeichenstifts etc. bei entsprechenden Tastendrücken.
from turtle import * title("Turtle-Zeichenprogamm: Verwende die Pfeiltasten, p, q und Escape") showturtle() def vorwaerts(): forward(50) def links(): left(60) def rechts(): write('Bitte Code ändern, so dass die Turtle um 60 Grad nach rechts abbiegt.') def rueckwaerts(): backward(50) def quadrat(): write('Bitte Code ändern, so dass ein Quadrat gezeichnet wird.') def polygon(): n = int(textinput("Polygon", "Anzahl der Ecken: ")) a = int(textinput("Polygon", "Länge der Seiten: ")) write('Bitte Code ändern, so dass ein regelmässiges n-Eck der Seitenlänge a gezeichnet wird.') # Nach den textinput-Befehlen muss man den "listener" wieder aktivieren. listen() onkey(vorwaerts, "Up") # Drücken der Nach-oben-Pfeiltaste führt # zum Aufruf der Funktion "vorwaerts". # (Sobald das Programm im "listen"-Modus ist.) onkey(links, "Left") onkey(rechts, "Right") onkey(rueckwaerts, "Down") onkey(quadrat, "q") onkey(polygon, "p") onkey(exit, "Escape") listen() # Aktiviert den listener-Modus: # Tastendrücke führen zum Ausführen # der entsprechenden Funktion. mainloop() # eine Art Endlosschleife, die auf Tastatureingaben wartet.
(wie immer: neues Python-Programm öffnen)
ist_prim mit einem Parameter n, die True oder False liefert abhängig davon, ob das Argument eine Primzahl ist. Z. B. soll ist_prim(5) den Wert True liefern.Falls du die Primzahlen nebeneinander (statt untereinander) ausgeben möchtest: Verwende
print(..., end=", ")
Dies sorgt dafür, dass nach der Ausgabe ein Kommazeichen und ein Leerzeichen folgt und nicht in eine neue Zeile gewechselt wird.
Erklärungen: https://www.w3schools.com/python/python_functions.asp.
Übungen dazu: https://www.w3schools.com/python/exercise.asp?filename=exercise_functions1