Eine Funktion ist ein Programmcode, der über den Funktionsnamen gezielt aufgerufen werden kann.
Diese Art von Programmcode lässt sich beliebig oft nutzen, ohne immer wieder im Code zu erscheinen.
Das hilft den aktuellen Programm-Code übersichtlich zu halten und vermindert die Fehleranfälligkeit eines Programms.
Der Code dient immer einem bestimmten Zweck, z.B. der Darstellung von Text auf der Konsole. (print())
Man kann bestehende Funktionen nutzen (siehe Tabelle) oder eigene Funktionen definieren.
Das Schlüsselwort def leitet die Funktionsdefinition ein, das return-Statement Symbolisiert das Ende der Funktion:
def funktionsname (parameterliste): Anweisungen return
Wichtig ist hierbei auf die Einrückung mit dem Tabulator zu achten.
Sobald der Programmcode nicht mehr richtig eingerückt ist, zählt er als eigenständiger Code.
Um eine Funktion zu nutzen, muss sie im Programm aufgerufen werden.
Beispiel ohne Parameter:
Beispiel mit einem Parameter:
Beispiel mit zwei Parameter:
Ändere das Programm zur Berechnung der Fakultät so um, dass der Programmcode der Berechnugn in einer Funktion ist. Zu Beginn soll das Programm eine Zahl einlesen und diese der Funktion übergeben. Diese soll wie gehabt die Fakultät der Zahl berechnen und ausgeben.
Eine Funktion muss die Resultate nicht zwingend direkt auf der Konsole ausgeben. Damit der Hauptcode auf die Resultate einer Funktion zugreifen kann, können diese mit dem return-Statement an den Hauptcode zurückgegeben werden.
Beispiel mit einem Rückgabewert:
Schreibe ein Programm, welches in einer Funktion das Quadrat einer Zahl berechnet und das Ergebnis anschließend dem Hauptprogramm zurü:ck gibt.
Im Hauptprogramm soll das Ergebnis nach der folgenden Ankündigung ausgegeben werden:
"Das Quadrat der Zahl" zahl
"beträgt: " Ergebnis der Funktion
Funktion | Aktion | Beispiel |
---|---|---|
print(var, "Text ") | Gibt die Elemente in den Klammern auf der Console aus | print("Hallo", wort, 3) → Hallo welt 3 |
input( "Eingabe-Aufforderung") | Der Text wird auf der Console ausgegeben anschließend muss der Nutzer etwas auf der Console eingeben |
input("Gib eine Zahl ein ") → ![]() |
type(variable) | Gibt den Datentyp des Elements auf der Console aus | type("Hallo") → ? |
len(variable) | Gibt die Länge eines sequentiellen Datentyps aus | kurs = "Python-"
print(len(kurs)) → 7 |
list( "Text " ) | Zerlegt einen String in einzelne Elemente und speichet diese in einer Liste ab. | kurs = list(
"P-t on")
→ kurs=['P', '-', 't', ' ', 'o', 'n'] |
range(zahl) | Erstellt eine Sequenz aus Zahlen von 0 bis zahl
In Kombination mit der Funktion list(Sequenz) kann man eine Liste der Länge zahl erstellen |
kurs = list(range(6))
→ kurs=[0, 1, 2, 3, 4, 5] |
min(variable) | Gibt das kleinste Element des sequentiellen Datentyps aus
Bei Buchstaben und Zeichen nach Lexiografischer Reihenfolge |
kurs = "Python-Daten"
print(min(kurs)) → - |
max(variable) | Gibt das größte Element des sequentiellen Datentyps aus
Bei Buchstaben und Zeichen nach Lexiografischer Reihenfolge |
kurs = "Python-Daten"
print(max(kurs)) → y |
Weitere Möglichkeiten der Nutzung der range()-Funktion findest du wenn du auf den Link klickst.
Bei Methoden handelt es sich um Funktionen, die abhängig von bestimmten Datentypen und Instanzen angewendet werden können.
Beim Aufruf einer Methode muss das entsprechende Objekt angegeben werden.
Schreibweise: objekt.methode()
Methoden sind festgelegt, d.h. jedes Objekt verfügt über bestimmte Möglichkeiten (sprich Methoden).
Methoden zur Bearbeitung von Strings finden sich in der untenstehenden Tabelle oder unter Methoden für Strings.
Methode | Aktion | Beispiel |
---|---|---|
count( "en") | Gibt aus, wie oft der angegebene String/zeichen im adressierten String vorkommt | kurs = "Python-Datentypen"
print(kurs.count( "en")) |
find( "en") | Sucht im adressierten String das erste Vorkommen von"en" und gibt dessen Position als Index aus
Achtung! Zählung beginnt bei 0! |
kurs = "Python-Datentypen"
print(kurs.find( "en")) |
replace( "vorher", "nachher") | Ersetzt im adressierten String alle Abschnitte "vorher" mit dem Abschnitt "nachher" | kurs = "Python-Datentypen"
print(kurs.replace( "Datentypen", "Methoden")) Ergebnis: Python-Methoden |
lower( ) | wandelt alle Buchstaben des Strings in Kleinbuchstaben um | kurs = "Python-Datentypen"
print(kurs.lower( )) |
upper( ) | wandelt alle Buchstaben des Strings in Großbuchstaben um | kurs = "Python-Datentypen"
print(kurs.upper( )) |
swapcase( ) | Alles was ursprünglich ein Großbuchstabe war, wird zum Kleinbuchstaben und andersherum | kurs = "Python-Datentypen"
print(kurs.swapcase( )) |
split( "-", 2) | Teilt den Stringinhalt an dem Trennzeichen "-" auf und fügt ihn einer Liste hinzu.
Die Zahl gibt an wie viele Aufteilungen maximal möglich sind. Hinweis: Die Parameter sind optional |
kurs = "Python-Datentypen"
einzeldaten =kurs.split( "-") print(einzeldaten) Ergebnis: ['Python', 'Datentypen'] |
Methoden zur Bearbeitung von Listen finden sich unter Methoden für Listen
oder unter Die Methoden einer Liste.
Nachdem man mit import random
das Modul random in das Programm übernommen hat, kann man auf verschiedene Methoden zugreifen. Das anzugebene Objekt beim Methoden-Aufruf ist hier immer random.
Methode | Aktion | Beispiel |
---|---|---|
random() | Gibt eine Zufallszahl x aus.
Es gilt: 0 ≤ x < 1 |
random.random() |
uniform(zahl1,zahl2) | Gibt eine Zufallszahl x aus. | random.uniform(3,4) |
normalvariate(Standardabweichung ,sigma) | Gibt eine Zufallsnummer aus Normalverteilung aus. | random.normalvariate(5, 0.1) |
randint(min,max) | Gibt eine ganzzahlige Zufallszahl x aus.
Es gilt: min ≤ x ≤ max |
random.randint(1,6) |
choice(liste) | Gibt ein zufälliges Element aus der Liste liste aus. | random.choice(fruits) |
Nutze dein Wissen über Listen und eine Methode von random, um das folgende Programm umzusetzen.
Bitte unter dem Namen "random_1.py" speichern.
Es soll ein Schmeichelprogramm geschrieben werden. Dieses soll uns loben, was das Zeug hält.
Wer lieber die Welt negativ sieht, darf natürlich genauso ein Beschimpfungsprogramm erstellen.
Alles eine Frage der Wortwahl...
Das gewünschte Ergebnis: ein sich immer änderndes Lob ausgeben in der Form:
"Du bist der ADJEKTIV NOMEN"
Beispielsweise:
"Du bist der beste Mensch"
"Du bist der genialste Programmierer"