Название: Routineaufgaben mit Python automatisieren
Автор: Al Sweigart
Издательство: Bookwire
Жанр: Математика
isbn: 9783960889571
isbn:
14 Nehmen Sie an, Sie haben ein Modul namens spam, in dem sich die Funktion bacon() befindet. Wie rufen Sie bacon() auf, nachdem Sie spam importiert haben?
Zusatzpunkt: Schlagen Sie die Funktionen round() und abs() im Internet nach und finden Sie heraus, was sie tun. Experimentieren Sie in der interaktiven Shell damit.
3
Funktionen
Um besser zu verstehen, wie Funktionen aufgebaut sind und was sie tun, wollen wir eine erstellen. Geben Sie das folgende Programm im Dateieditor ein und speichern Sie es als helloFunc.py:
def hello():
print('Howdy!')
print('Howdy!!!')
print('Hello there.')
hello()
hello()
hello()
Die Ausführung dieses Programms können Sie sich auf https://autbor.com/hellofunc/ ansehen. Die erste Zeile enthält die Anweisung def (
Die hello()-Zeilen im Anschluss an die Funktionsdefinition (
Da das Programm die Funktion hello() dreimal aufruft, wird der Code von hello() auch dreimal ausgeführt. Wenn Sie das Programm starten, sehen Sie folgende Ausgabe:
Howdy!
Howdy!!!
Hello there.
Howdy!
Howdy!!!
Hello there.
Howdy!
Howdy!!!
Hello there.
Ein wichtiger Zweck von Funktionen besteht darin, Code, der mehrfach ausgeführt wird, an einer Stelle zentral vorzuhalten. Ohne Funktionen müssten Sie den Code überall dort, wo er benötigt wird, komplett einfügen. Das Programm sähe dann wie folgt aus:
print('Howdy!')
print('Howdy!!!')
print('Hello there.')
print('Howdy!')
print('Howdy!!!')
print('Hello there.')
print('Howdy!')
print('Howdy!!!')
print('Hello there.')
Eine solche Duplizierung von Code sollten Sie in jedem Fall vermeiden, denn wenn Sie Ihren Code irgendwann ändern – zum Beispiel, um einen Fehler zu korrigieren –, müssten Sie ihn sonst an jeder einzelnen Stelle anpassen, an der Sie ihn eingefügt haben.
Je mehr Programmiererfahrung Sie haben, umso häufiger werden Sie duplizierten oder kopierten Code entfernen können. Dadurch werden Ihre Programme kürzer, besser lesbar und leichter zu ändern.
Def-Anweisungen mit Parametern
Beim Aufruf von Funktionen wie print() und len() übergeben Sie Werte, sogenannte Argumente, indem Sie sie in die Klammern schreiben. Auch Ihre eigenen Funktionen können Sie so definieren, dass sie Argumente annehmen. Geben Sie das folgende Beispiel im Dateieditor ein und speichern Sie es als helloFunc2.py:
def hello(name):
print('Hello ' + name)
hello('Alice')
hello('Bob')
Wenn Sie dieses Programm ausführen, erhalten Sie folgende Ausgabe:
Hello Alice
Hello Bob
Die Ausführung dieses Programms können Sie sich auf https://autbor.com/hellofunc2/ ansehen. Die Definition der Funktion hello() in diesem Programm schließt den Parameter name ein (
Sobald die Funktion die Steuerung zurückgibt (wenn die Programmausführung also die Funktion verlässt und normal fortfährt), geht der in dem Parameter gespeicherte Wert jedoch verloren. Wenn Sie in dem vorstehenden Programm hinter hello('Bob') die Anweisung print(name) einfügen, erhalten Sie die Fehlermeldung NameError, da es zu diesem Zeitpunkt keine Variable namens name СКАЧАТЬ