Erinnerst du dich noch, was die abs Funktion macht?
Falls du dich nicht mehr erinnerst, hilft dir die help() Funktion. Mit dieser Funktion hältst du auch eines der wichtigsten Werkzeuge
von Python in den Händen, um andere Funktionen verstehen zu können.
Hier, ein Beispiel dafür:
help(round)
Help bei der eingebauten Funktion:
round(number, ndigits=None)
Rundet eine Zahl je nach Anweisung.
Return Wert ist ein Integer, wenn ndigits auf None gesetzt wird.
Sonst nimmt der Return Wert den Typ der Nummer an. Ndigits darf negativ sein.
help() zeigt uns zwei Sachen:
1. Den Header der Funktion round(number, ndigits=None). In diesem Fall zeigt es uns das round(). Ein Argument, welches eine Zahl
als Eingabe benötigt. Wir können auch ein separates Argument für ndigits eingeben.
2. Eine kurze englische Beschreibung, was die Funktion macht (in diesem Fall wurde es auf Deutsch übersetzt).
Ein häufig Vorkommender Fehler:
Wenn du nach einer Funktion suchst, solltest du nur nach der Funktion suchen und nicht nach dem Ergebnis der Funktion.
Was passiert, wenn wir die Funktion round() aufrufen, während wir um Hilfe bitten?
help(round(-2.01))
Kurzgefasst erzählt es dir viel zu viel über Integers, aber wieso? round() ist in dem help() also sollte help() zuerst ausgeführt werden,
oder? In Python werden Funktionen von innen nach außen aufgerufen, deswegen erzählt uns die help-Funktion viel über Integers.
round() ist eine sehr einfache Funktion mit einem kurzen docstring. Help wird am nützlichsten, wenn es komplexere und sehr konfigurierbar
Funktionen wie print erklären muss. Nicht eingeschüchtert werden, es schaut zwar nach sehr viel aus, aber probiere, die Zeilen, die dir Unbekannt vorkommen, zu interpretieren.
help(print)
Help bei der eingebauten Funktion:
print(…)
Druckt den Wert auf den Stream, oder zu sys.stdout by default.
Optionale Schlüsselargumente:
File: ein File-artiges Objekt (stream); geht normalerweise zur derzeitigen sys.stdout.
Sep: String eingefügt zwischen den Werten, normalerweise 1 Abstand.
End: Ein String, der nach dem letzten Wert eingehängt wird, normalerweise auf einer neuen Zeile.
Flush: ob es mit Gewalt den Stream fluten soll.
Vielleicht hast du erkannt, dass es ein Argument namens sep für print() gibt. Noch dazu hast du vielleicht
erkannt, dass hier entschieden wird, wie die Werte getrennt werden.
Eingebaute Funktionen sind zwar sehr hilfreich, aber man kommt nicht sehr weit, wenn man sich nur auf diese verlässt.
Aus diesem Grund müssen wir unsere eigenen Funktionen definieren. Hier ein einfaches Beispiel dazu.
def wenigster_unterschied(a, b, c):
diff2 = abs(b - c)
diff3 = abs(a - c)
return min(diff1, diff2, diff3)
Das erstellt eine Funktion namens wenigster_unterschied. Diese nimmt drei Argumente namens a, b und c.
Wenn es mit def anfängt, dann definiert man eine Funktion und der eingeschobene Block nach dem Doppelpunkt ist, was die Funktion macht.
Return ist ein äußerst wichtiger Baustein, der häufig mit Funktionen zusammen eingesetzt wird. Sobald eine Funktion auf Return trifft,
schließt sie sich selbst und gibt die Werte, die Rechts vom Return sind zum calling context.
Wenn dir noch unklar ist, was wenigster_unterschied() macht, dann schau dir noch folgende Beispiele an:
print(
wenigster_unterschied(1, 10, 100),
wenigster_unterschied(1, 10, 10),
wenigster_unterschied(5, 6, 7),
#Man kann die print() ausgaben mit Komma teilen, wie cool ist das denn?
)
9 0 1
help(wenigster_unterschied)
def wenigster_unterschied(a, b ,c):
>>> wenigster_unterschied(1, 5, -5)
4
"""
diff1 = abs(a - b)
diff2 = abs(b - c)
diff3 = abs(a - c)
return min(diff1, diff2, diff3)
Der Docstring ist ein String, der über mehrere Zeilen laufen kann und der sofort nach dem Header der Funktion aufgeschrieben wird.
Dieser wird mit einem dreifach Anführungszeichen gekennzeichnet und bei einem help() Aufruf sehen wir das auch.
help(wenigster_unterschied)
Help auf Funktion wenigster_unterschied in module __main__:
wenigster_unterschied(a, b ,c)
Gib die kleinste Differenz zwischen a, b oder c aus.
>>> wenigster_unterschied(1, 5, -5)
4
def wenigster_unterschied(a, b ,c):
"""Gib die kleinste Differenz zwischen von a, b oder c aus.
"""
diff1 = abs(a - b)
diff2 = abs(b - c)
diff3 = abs(a - c)
min(diff1, diff2, diff3)
print(
wenigster_unterschied(1, 10, 100),
wenigster_unterschied(1, 10, 10),
wenigster_unterschied(5, 6, 7),
)
None None None
mystery = print()
print(mystery)
None
print(1, 2, 3, sep =" < ")
1 < 2 < 3
Wenn wir aber gar nichts eingeben, dann wird einfach ein Abstand zwischen den Strings ausgegeben.
def gruesse(wer="Heinz"):
print("Hallo,", wer)
gruesse()
gruesse(wer="Ai GYM")
#In unserem Fall müssen wir nicht den Namen des Arguments spezifizieren, weil es nur dieses eine gibt.
gruesse("Welt")
Hallo, Heinz
Hallo, Ai GYM
Hallo, Welt
def mal_fuenf(x):
return 5 * x
def call(fnktn, arg):
"""erhöhe fnktn auf arg"""
Return fnktn(arg)
def quadrat(fnktn, arg):
"""erhöhe fnktn mit dem Ergebnis von fnktn auf arg"""
return fnktn(fnktn(arg))
print(
call(mal_fuenf, 1),
quadrat(mal_fuenf, 1),
"sep='\n',"
#'\n' fängt bei einer neuen Zeile an."
)
5
25
Funktionen, die mit anderen Funktionen arbeiten, heißen "Funktion höherer Ordnung".
def modulo_5(x):
"""Den Rest von x nach der Division mit 5"""
return x % 5
print(
'Welche Zahl ist am größten?',
max(100, 51, 14),
'Welche Zahl ist die größte nach Modulo 5?'',
max(100, 51, 14, key=modulo_5),
sep='\n',
)
Welche Zahl ist am größten
100
Welche Zahl ist die größte nach Modulo 5?
14