Eine Anleitung für die Bearbeitung und Abgabe der Übunsgaufgaben in Python findet Ihr im Abgabebereich des Moodlekurses ( Link ).
Kurzform: Eine Aufgabe besteht immer aus einer "Funktion", die für einen definierten Input (Argumente) einen definierten Output zurückgeben soll (engl.: return
). Überprüft die Korrektheit dieses Outputs und damit Eurer Lösung mit testme(funktionsname)
. Wenn Ihr fertig seid, erzeugt unter im Abschnitt Gesamtauswertung Euer Zertifikat und gebt es dann in Moodle zusammen mit diesem Notebook ab.
Hier ein Beispiel für eine Funktion: Die Funktion heißt beispiel
, hat die Argumente (den Input) x
und y
und gibt die Variable ergebnis
zurück. Das Ergebnis ist in diesem Fall die Summe der Argumente x
und y
.
def beispiel(x, y):
ergebnis = x + y
return(ergebnis)
beispiel(1,1)
beispiel(2,-3)
Damit die Tests bei Euch laufen, müsst Ihr folgende Zeile ausführen. Und dann geht es los!
from testzentrum import *
...los geht's!
Ändere die Funktion hello
so, dass sie die Zeichenkette Goodbye, Excel!
zurückgibt.
def hello():
return("Hello, Python!")
# TEST
testme(hello)
Die Funktion summe
soll die Summe der Argumente x
und y
zurückgeben. Aber etwas stimmt nicht.
Ergänze die Funktion so, dass sie funktioniert.
def summe():
ergebnis = x + y
return(ergebnis)
# TEST
testme(summe)
Die Funktion verketten
soll die drei Strings (Zeichenketten) a
, b
und c
zu einem String zusammmenfügen und zurückgeben.
def verketten(a, b, c):
ergebnis = ""
return(ergebnis)
# TEST
testme(verketten)
Erweitert die Funktion istgleich
, so dass True
zurückgibt, wenn die Argumente x
und y
gleich sind. Sonst soll sie False
zurückgeben.
Achtung: Von nun erhaltet Ihr gelegentlich nur noch die Defintionszeile der Funktion - das pass
statement müsst Ihr dann durch geeigneten Inhalt ersetzen (return
statement nicht vergessen!).
def istgleich(x, y):
pass
testme(istgleich)
Die folgende Funktion soll den Inhalt der Datei uebung2.txt
zurückgeben, die im Verzeichnis umweltdv/01_environment/python/uebung/data/subdir
liegt. Ergänze die Funktion lies
so, dass der Inhalt der Datei zurückgegeben wird. Dazu musst Du die Variable pfad
mit der korrekten relativen Pfadangabe ergänzen.
def lies():
pfad = "relativer/pfad/datei.txt"
f = open(pfad, "r", encoding="utf8")
ergebnis = f.read()
f.close()
print(ergebnis)
return(ergebnis)
testme(lies)
Die folgende Funktion lies_weiter
ist der eben bearbeiteten ganz ähnlich. Nun sollst Du aber einen andern Teil ergänzen. Den korrekten Pfad zur Datei pfad
erhält die Funktion als Argument. Ergänze nun die Funktion so, dass die zurückgegebene Variable ergebnis
den Dateiinhalt zurückgibt.
def lies_weiter(pfad):
ergebnis = ""
print(ergebnis)
return(ergebnis)
testme(lies_weiter)
Du hast ja im Seminar bereits erfahren, dass es unterschiedliche Datentypen gibt (z.B. int
, str
, float
, bool
). Die folgende Funktion irgendsontyp
soll für ein belieges Argument input
den Datentyp zurückgeben. Dafür musst Du nur nochmal nachschauen, wie man den Typ einer Variable ermittelt.
def irgendsontyp(input):
pass
testme(irgendsontyp)
Du hast ja im Seminar schon die Datentypen int
, str
, float
und bool
kurz kennengelernt. Zum Abschluss lernen wir noch einen Python-Datentyp kennen: die Liste (list
). Eine Liste kann Einträge unterschliedlicher Datentypen enthalten. Auf diese Einträge kann man dann mit Hilfe eines Index (Positon des Eintrags) zugreifen. Das Besondere an Python: Der erste Eintrag hat die Position 0
, der zweite dann 1
usw. Das ist anders als in R!
Am Besten mal ein Beispiel:
eineliste = ["Uebungen erledigen!", "Einkaufen", "Fahrrad putzen"]
nottodoliste = ["Frühzeitig an die eigene Rente denken.",
"Glastüren übersehen.",
"Etwas kaufen, weil es »Aloe Vera« enthält."]
gemischtes = [1,2,"drei"]
eineliste[2]
nottodoliste[0]
gemischtes[0:2]
Ergänze nun die Funktion typinderliste
so, dass sie aus der Liste inlist
den Eintrag für Index i
auswählt und für diesen den Datentyp zurückgibt.
def typinderliste(inlist, i):
pass
testme(typinderliste)
get_certificate(testmysolutions=[hello, summe, verketten, istgleich, lies, lies_weiter, irgendsontyp, typinderliste],
lesson=1)