Teil 8: Eigene Funktionen
Lernziele
- Eine eigene Funktion mit
defschreiben und aufrufen- Funktionen Argumente übergeben
- Mit
returneinen Wert zurückgeben und weiterverwenden- Den Unterschied zwischen Ausgeben und Zurückgeben erklären
- Funktionen innerhalb anderer Funktionen aufrufen
Neue Befehle:
defdefiniert eine eigene Funktionreturngibt einen Wert zurück und beendet die Funktion
Eigene Funktionen
Funktionen kennst du schon: print, input, max. Jetzt schreiben wir eigene. Funktionen machen Programme kürzer, übersichtlicher und leichter zu korrigieren, weil eine Änderung nur an einer Stelle nötig ist.
def sag_hallo():
print("Hallo")
sag_hallo()
sag_hallo()
Aufbau einer Funktion
Argumente
Damit eine Funktion mit verschiedenen Werten arbeiten kann, übergibt man ihr Argumente.
def gerade(x):
if x % 2 == 0:
print("gerade")
else:
print("ungerade")
gerade(10)
gerade(13)
Mehrere Argumente werden mit Kommas getrennt. Die Funktion erwartet immer genau so viele, wie bei der Definition angegeben wurden.
def teilbar(a, b):
if a % b == 0:
print(a, "ist durch", b, "teilbar")
Rückgabewerte
Bisher haben unsere Funktionen etwas ausgegeben. Nützlicher ist es meist, wenn sie ein Ergebnis zurückgeben, mit dem das Programm weiterrechnen kann. Dafür gibt es return.
def teilbar(a, b):
if a % b == 0:
return True
else:
return False
for n in range(10):
if teilbar(n, 2):
print(n)
Ausgeben oder zurückgeben
Weil teilbar bereits True oder False liefert, genügt im if der blosse Aufruf. Der Vergleich == True ist überflüssig.
Funktionen in Funktionen
Eine Funktion darf andere Funktionen aufrufen. So baust du grössere Programme aus kleinen, geprüften Bausteinen.
def teilbar_bis(n):
for x in range(n):
if teilbar(x, 3):
print(x)
teilbar_bis(20)
Aufgaben
Aufgabe 8.1Schreibe die Funktion
quadrieren(x), die das Quadrat zurückgibt. Teste sie mit 3.
Aufgabe 8.2Schreibe die Funktion
summe_zwei(a, b), die die Summe zurückgibt. Teste sie mit 5 und 7.
Aufgabe 8.3Schreibe die Funktion
rechteck(l, b), die Fläche und Umfang zurückgibt.
Aufgabe 8.4Schreibe die Funktion
max3(a, b, c), die den grössten der drei Werte zurückgibt, ohnemaxzu verwenden.
Aufgabe 8.5Schreibe die Funktion
durch_vier(n), dieTruezurückgibt, wennndurch 4 teilbar ist.
Aufgabe 8.6Schreibe die Funktion
ist_prim(n), die prüft, obneine Primzahl ist. Eine Primzahl ist nur durch 1 und sich selbst teilbar.
Aufgabe 8.7Schreibe die Funktion
minimum(x, y), die den kleineren Wert zurückgibt, ohneminzu verwenden.
Aufgabe 8.8Schreibe einen Kreisrechner
kreis(radius), der Durchmesser, Umfang und Fläche zurückgibt. Verwende für die Kreiszahl vorerst3.14159.
Weitere Aufgaben
Zusatzaufgabe 8.9Teste deine Funktion
ist_primmit den Zahlen 2, 3, 4, 11 und 15. Welche Ergebnisse erwartest du, bevor du das Programm laufen lässt? Welcher Testfall ist am wichtigsten?
Zusatzaufgabe 8.10Schreibe die beiden Funktionen
c_to_f(c)undf_to_c(f)zur Umrechnung von Temperaturen. Es gilt . Prüfe, ob Grad Celsius zu Grad Fahrenheit werden und umgekehrt.
Zusatzaufgabe 8.11Schreibe die Funktion
fakultaet(n)mit einer Schleife und teste sie mit 5.
Zusatzaufgabe 8.12Schreibe die Funktion
buchstabensuche(buchstabe, wort), dieTruezurückgibt, wenn der Buchstabe im Wort vorkommt. Löse die Aufgabe zuerst mit einer Schleife.