Название: Routineaufgaben mit Python automatisieren
Автор: Al Sweigart
Издательство: Bookwire
Жанр: Математика
isbn: 9783960889571
isbn:
Manche Funktionen können mit mehreren, durch Kommata getrennten Argumenten aufgerufen werden. Unter anderem ist das auch bei range() möglich. Damit können Sie dafür sorgen, dass die Funktion beliebige Intervalle durchläuft, auch solche, die nicht mit 0 beginnen:
for i in range(12, 16):
print(i)
Das erste Argument gibt den Wert an, mit dem die Variable der for-Schleife beginnt, das zweite die Zahl, bis zu der die Inkrementierung durchgeführt wird (ohne sie zu erreichen):
12
13
14
15
Die Funktion range() kann auch mit drei Argumenten aufgerufen werden. Dabei sind die ersten beiden wie gehabt der Anfangs- und der Endwert, während der dritte die Schrittweite angibt, also den Wert, um den die Variable nach jeder Iteration erhöht wird.
for i in range(0, 10, 2):
print(i)
Wenn Sie also range(0, 10, 2) aufrufen, wird in Abständen von 2 von 0 bis 8 gezählt:
0
2
4
6
8
Was die Reihenfolge der Zahlen für die for-Schleifen angeht, ist die Funktion range() sehr flexibel. Sie können auch eine negative Zahl als Schrittweite angeben, damit die for-Schleife abwärts zählt statt aufwärts.
for i in range(5, -1, -1):
print(i)
Diese for-Schleife hat die folgende Ausgabe:
5
4
3
2
1
0
Module importieren
Alle Python-Programme können einen grundlegenden Satz von eingebauten oder integrierten Funktionen nutzen, beispielsweise print(), input() und len(), die Sie schon kennengelernt haben. Darüber hinaus wird Python mit einem Satz von Modulen geliefert, der als Standardbibliothek bezeichnet wird. Jedes Modul ist ein Python-Programm mit mehreren thematisch verwandten Funktionen, die Sie in Ihr Programm einbetten können. Beispielsweise verfügt das Modul math über mathematische Funktionen, das Modul random über Funktionen für Zufallszahlen usw.
Bevor Sie die Funktionen eines Moduls nutzen können, müssen Sie das Modul mit der Anweisung import importieren. Diese Anweisung hat die folgenden Bestandteile:
Das Schlüsselwort import
Den Namen des Moduls
Optional weitere Modulnamen, die durch Kommata voneinander getrennt sind
Nachdem Sie ein Modul importiert haben, können Sie alle seine Funktionen nutzen. Das wollen wir anhand des Moduls random ausprobieren, das uns Zugriff auf die Funktion random.randint() gibt.
Geben Sie den folgenden Code in den Dateieditor ein und speichern Sie ihn als printRandom.py:
import random
for i in range(5):
print(random.randint(1, 10))
Überschreiben Sie keine Modulnamen!
Wenn Sie Ihre Python-Skripte speichern, müssen Sie darauf achten, dass Sie ihnen nicht die Namen von Python-Modulen wie random.py, sys.py, os.py oder math.py geben. Sollten Sie versehentlich eines Ihrer Programme etwa random.py nennen und dann in einem anderen Programm die Anweisung import random verwenden, so wird statt des Python-Moduls random Ihre Datei random.py importiert. Das kann zu einer Fehlermeldung wie AttributeError: module 'random' has no attribute 'randint' führen, da Ihre Datei nicht über die Funktionen verfügt, die sich in dem echten Modul random befinden. Verwenden Sie auch keine Namen von eingebauten Python-Funktionen wie print()oder input().
Solche Probleme sind zwar selten, doch wenn sie auftreten, lassen sie sich nur schwer finden. Mit zunehmender Programmiererfahrung werden Sie die Namen der Standardmodule und -funktionen von Python besser kennen und dadurch noch seltener in solche Schwierigkeiten kommen.
Wenn Sie dieses Programm ausführen, erhalten Sie eine Ausgabe wie die folgende:
4
1
8
4
1
Die Ausführung dieses Programms können Sie sich auf https://autbor.com/printrandom/ ansehen. Der Aufruf der Funktion random.randint() wird zu einem zufälligen Integerwert ausgewertet, der zwischen den beiden übergebenen Integern liegt. Da randint() zum Modul random gehört, müssen Sie dem Funktionsnamen random. voranstellen, um Python anzuweisen, in diesem Modul nach der Funktion zu suchen.
Das folgende Beispiel zeigt eine import-Anweisung, die gleich vier verschiedene Module importiert:
import random, sys, os, math
Danach können Sie alle Funktionen dieser vier Module nutzen. Mehr darüber erfahren Sie weiter hinten in diesem Buch.
From-import-Anweisungen
Eine alternative Form der import-Anweisung besteht aus dem Schlüsselwort from gefolgt vom Modulnamen, dem Schlüsselwort import und einem Sternchen, also z. B. from random import *.
Bei dieser Form müssen Sie Aufrufen der Funktionen aus random das Präfix random. nicht mehr voranstellen. Allerdings ist der Code leichter verständlich, wenn Sie den vollständigen Namen verwenden, weshalb es besser ist, sich an die übliche Form der import-Anweisung zu halten.
Programme mit sys.exit() vorzeitig beenden
Der letzte Aspekt der Flusssteuerung, mit dem wir uns hier beschäftigen, ist die Beendigung eines Programms. Wenn die Ausführung am Ende der Anweisungen angelangt ist, wird das Programm automatisch beendet, allerdings können Sie durch einen Aufruf der Funktion sys.exit() auch dafür sorgen, dass das Programm vor der letzten Anweisung beendet wird. Da diese Funktion zum Modul СКАЧАТЬ