Название: Routineaufgaben mit Python automatisieren
Автор: Al Sweigart
Издательство: Bookwire
Жанр: Математика
isbn: 9783960889571
isbn:
********
********
********
********
********
********
********
********
********
Geben Sie den folgenden Quellcode in den Dateieditor ein und speichern Sie die Datei als zigzag.py:
import time, sys
indent = 0 # Anzahl der Zeichen in der Einrückung
indentIncreasing = True # Gibt an, ob die Einrückung größer wird oder nicht
try:
while True: # Hauptprogrammschleife
print(' ' * indent, end='')
print('********')
time.sleep(0.1) # Hält 1/10 Sekunde lang an
if indentIncreasing:
# Erhöht die Anzahl der Leerzeichen
indent = indent + 1
if indent == 20:
# Ändert die Richtung
indentIncreasing = False
else:
# Verringert die Anzahl der Leerzeichen
indent = indent - 1
if indent == 0:
# Ändert die Richtung
indentIncreasing = True
except KeyboardInterrupt:
sys.exit()
Sehen wir uns diesen Code nun Zeile für Zeile an.
import time, sys
indent = 0 # Anzahl der Zeichen in der Einrückung
indentIncreasing = True # Gibt an, ob die Einrückung größer wird oder nicht
Als Erstes importieren wir die Module time und sys. Des Weiteren verwendet das Programm zwei Variablen: Mit indent merkt es sich, wie viele Leerzeichen vor der Reihe von acht Sternchen stehen, während der boolesche Wert in indentIncreasing bestimmt, ob die Anzahl der Leerzeichen größer oder kleiner werden soll.
try:
while True: # Hauptprogrammschleife
print(' ' * indent, end='')
print('********')
time.sleep(0.1) # Hält 1/10 Sekunde lang an
Der Rest des Programms steht in einer try-Anweisung. Wenn der Benutzer während der Ausführung eines Python-Programms
Die Endlosschleife while True: wiederholt unaufhörlich die Anweisungen in unserem Programm. Darin wird mit ' ' * indent jeweils die richtige Menge an Leerzeichen zur Einrückung ausgegeben. Da hinter diesen Leerzeichen nicht automatisch ein Zeilenumbruch erfolgen soll, übergeben wir außerdem end='' an den ersten Aufruf von print(). Ein zweiter print()-Aufruf gibt die Sternchenreihe aus. Die Funktion time.sleep() haben wir noch nicht behandelt; es reicht hier zu wissen, dass sie an dieser Stelle des Programms eine Pause von einer Zehntelsekunde Dauer einschiebt.
if indentIncreasing:
# Erhöht die Anzahl der Leerzeichen
indent = indent + 1
if indent == 20:
# Ändert die Richtung
indentIncreasing = False
Als Nächstes ändern wir die Länge der Einrückung für die nächste Sternchenreihe. Wenn indentIncreasing den Wert True hat, erhöhen wir indent um 1. Erreicht die Einrückung aber eine Länge von 20, soll sie wieder abnehmen.
else:
# Verringert die Anzahl der Leerzeichen
indent = indent - 1
if indent == 0:
# Ändert die Richtung
indentIncreasing = True
Hat indentIncreasing den Wert False, müssen wir indent jeweils um 1 verringern. Sobald indent dadurch auf 0 sinkt, soll die Einrückung wieder wachsen. In jedem Fall springt die Programmausführung zurück zum Anfang der Hauptschleife, um wieder mit der Ausgabe der Sternchenreihen zu beginnen.
except KeyboardInterrupt:
sys.exit()
Wenn der Benutzer zu irgendeinem Zeitpunkt, an dem sich die Programmausführung in dem try-Block befindet,
Zusammenfassung
Funktionen sind die wichtigste Möglichkeit, um Ihren Code logisch zu gruppieren. Da Variablen in Funktion eigene lokale Gültigkeitsbereiche haben, kann der Code in einer Funktion die Werte von Variablen in anderen Funktionen nicht unmittelbar beeinflussen. Das schränkt den Umfang des Codes ein, der die Werte von Variablen ändern kann, was sich wiederum beim Debugging als sehr СКАЧАТЬ