Materialien zum Unterricht

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

Methode Beschreibung
.count() Liefert die Anzahl der vorhandenen Listeneinträge zurück
.index() suchen nach Element in Liste und liefert Index (Nummern fangen bei 0 an!) zurück
.copy() Erstellt eine Kopie
.insert() fügt einen Eintrag an der vorgegebenen Index-Nummer ein (folgende Einträge werden nach hinten verschoben)
.append() hinzufügen von einem Eintrag am Ende der Liste
.extend() hinzufügen aller Einträge einer anderen Liste
.pop() löscht den Eintrag aus der Liste des übergebenen Index und liefert dessen Inhalt als Rückgabewert
.remove() löscht den Eintrag aus der Liste (im Gegensatz zu pop() wird der Wert und nicht der Index übergeben)
.clear() Löscht alle Einträge der Liste
.sort() sortiert die Liste in gewünschter Form

Aufgabe:

Ordne den Beispielen passende Ausgaben zu.

Notiere die Methoden und was sie bewirken in deinem Hefter.


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: Zufallswerte aus Listen

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))