Funktionen kennst du schon aus Mathe, dort gibt es beispielsweise die Wurzelfunktion: y = √x
In Python schreibt man dafur: y = sqrt(x)
, Beispiel:
>>> y = sqrt(2)
>>> y
1.4142135623730951
>>> sqrt(3)
1.7320508075688772
Probiere das obige Beispiel aus! Wie? Schon wieder eine Fehlermeldung??
Studiere die Fehlermeldung und formuliere eine Vermutung. Jetzt! _____________________________________________________________
Wir haben beim letzten Mal auch eine Python-Funktion
kennengelernt, welche? _____________________________________________________________
Wie schreibt man eine Python-Funktion? Hier ein Beispiel:
An diesem Beispiel ist so ziemlich alles wichtig, was ihr seht. Zuvor aber ein
wichtige Unterscheidung: Was ihr hier seht, ist eine
Funktionsvereinbarung, man sagt kurz: hallo()
ist eine Abkürzung für die
beiden print-Befehle. Wenn man eine Funktion vereinbart hat, will man sie auch
aufrufen, gib einfach ein:
>>> hallo()
Als Ergebnis solltest du auf dem Bildschirm sehen:
Hallo Info-E2
Python IS fun!
Und jetzt zur Funktionsvereinbarung, der Einfachheit halber mit Zeilennummern, die du natürlich nicht eingibst!
(1) >>> def hallo():
(2) print('Hallo Info-E2')
(3) print('Python IS fun!')
(4)
(5) >>>
Erklärung:
def
, danach kommt der Funktionsname, hier hallo()
und schließlich kommt der Doppelpunkt :
Der Doppelpunkt ist wichtig, er sagt Python in etwa: Jetzt beginnt die Funktionsvereinbarung, alles was jetzt folgt, gehört zur Funktion hallo()
. Und wo endet die Funktionsvereinbarung?? Schauen wir in Zeile (2): Diese Zeile ist eingerückt, das macht Python für dich, und diese Einrückungen sind wichtig! Wieviel Zeichen eingerückt wird, ist Python egal, aber: du musst alle Befehle gleich weit einrücken, und weil das so wichtig ist, schreiben wir das noch mal zentriert und fett:
Du musst alle Python-Befehle in einer Funktion gleich weit einrücken!
Keine Regel ohne Ausnahme, doch dazu später.
sqrt()
: probier mal from math import sqrt
, danach sollte es gehen! Warum? Später! In Zeile (4) und Zeile (5) entstehen, indem man zweimal hintereinander auf Return
oder Enter
drückt, ohne irgendetwas einzugeben! Damit enden die Einrückungen, und damit endet auch die Funktionsvereinbarung!
Aufgabe: Bringe das Beispiel oben zum Laufen! Wie?
Wenn wir IDLE verlassen, sind unsere selbst geschriebenen Funktionen weg! Das muss nicht sein: Gehe im Menü oben über "File > New File" (kürzer: "Strg N", das heisst, drücke die Strg-Taste, lasse sie gedrückt und drücke die N-Taste), und gib in das neue Fenster ein:
Beachte die Einrückungen! Abspeichern geht uber "File=>Save" (kurzer: "Strg S"), du musst aber beim Dateinamen die Endung ".py" mit eingeben (Bitte auf Laufwerk H:\ abspeichern):
Danach sollte dein Fenster etwa so aussehen:
Und wie führt man diese kleine Python-Funktion aus? Ganz einfach: über "Run > Run Module" (kürzer: "F5", F5 ist eine der Funktionstasten oben auf der Tastatur). Probiere es aus. Wie, es passiert nichts? Gib einfach ein:
>>> hallo()
Muster machen wir mit vielen print()
-Befehlen! Beispiel:
def muster():
print('*'*7)
print('*' + ' '*5 + '*')
print('*'*7)
Frage: Was wird hier wohl ausgegeben, Skizze:
Aufgabe: Gib diese Python-Funktion im Editor ein und probiere sie aus, abspeichern unter "muster_01.py", und noch eine
Frage: Wie kannst du diese Funktion aufrufen? _____________________________________________________________
die Funktionsvereinbarung, die man gerne auch Funktionsdeklaration nennt vom Aufruf der Funktion. Beispiel: Die Funktion muster()
haben wir ein einziges Mal programmiert, also vereinbart. Aufrufen können wir die Funktion dagegen mehrmals, zur Not auch, weil die Ausgabe so schön ist, gleich 2 x hintereinander:
>>> muster(), muster()
Was wir eben über selbstgeschriebene Funktionen gesagt haben, gilt natürlich auch für Python-Funktionen, z. B. print()
: Wir rufen sie mehrfach auf, aber vereinbart wird sie nur 1 x, und zwar von den netten Menschen, die uns Python kostenlos zur Verfügung stellen.
Schreibe eine Funktion hallo2()
, die dich nach deinem Namen fragt, und dann mit deinem Namen begrüßt! Abspeichern unter hallo2.py
Schreibe eine Funktion dreieck()
, die folgende Ausgabe erzeugt:
Abspeichern unter dreieck.py
Geht auch
>>> dreieck(), dreieck(), dreieck()
Was bedeutet denn die Ausgabe von Python in Aufgabe 3: (None, None, None)
(schwere Aufgabe . . .)
→ sp, 2023-07-25