Materialien zum Unterricht

Funktionen & Methoden-Sammlung

Funktionen

Was sind Funktionen?

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:

Aufgabe 1:

Ä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.





Beispiellösung
def fakultaet(zahl):
    i = zahl
    fak = 1
    if zahl == 0:
        print("0! ergibt: 1")
    else:
        while i !=0:
            fak *= i
            i -= 1
        print(zahl,"! ergibt:",fak)
x = int(input("Gib eine positive natürliche Zahl ein: "))
print(fakultaet(x))






Funktionen mit Rückgabewert

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:

Aufgabe 2:

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



Beispiellösung
def quad(x):
    x *= x
    return x

zahl = int(input("Gib die zu quadrierende Zahl ein: "))
print("Das Quadrat der Zahl", zahl , "beträgt: ", quad(zahl))


Gängige Funktionen in Python


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 ")
python input
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.

Methoden

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 für sequentielle Datentypen


Methoden für Strings:

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 für Listen

Methoden zur Bearbeitung von Listen finden sich unter Methoden für Listen
oder unter Die Methoden einer Liste.

Zufallszahlen

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)

Aufgabe 1:

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"

Tipp 1
Man benötigt 2 Listen: adjektiv und nomen
Tipp 2
Du benötigst die Methode choice()




Lösung
#Modul random importieren
import random
#Listen für Adjektive und Nomen anlegen
adjektive = ["beste", "liebenswuerdigste", "schoenste", "groesste","genialste"]
nomen = ["Mensch", "Hecht", "Freund", "Kumpel", "Programmierer"]
#Ausgabe mit zufaelliger auswahl der Worte
print ("Du bist der", random.choice(adjektive), random.choice(nomen))