Instructions
31
if s[i].isdigit():
z[i] = int(s[i])
else:
z[i] = 0
sek = time.time()
while time.time() <= sek + 2:
za()
except KeyboardInterrupt:
GPIO.cleanup()
So funktioniert es
Große Teile des Programms sind vom 10. Tag bekannt. Alles, was die Initialisierung der GPIO-Ports und
die Liste zur Darstellung der Ziffern auf den sieben Segmenten der Anzeige betrifft, ist aus dem letzten
Programm übernommen.
z = [0,0,0,0]
Die Liste z[] enthält im Verlauf des Programms vier Ziffern, die angezeigt werden sollen. Diese Liste wird
am Anfang einmal initialisiert und mit vier Nullen gefüllt.
def za():
for i in range(4):
for s in "abcdefg":
GPIO.output(seg[s], 0)
GPIO.output(zif[i], 0)
for s in zahl[z[i]]:
GPIO.output(seg[s], 1)
time.sleep(0.001)
GPIO.output(zif[i], 1)
Die Zahlenanzeige ist jetzt in eine Funktion za() ausgelagert, die möglichst allgemein gehalten ist und
deshalb auch für andere Programme verwendet werden kann. Sie zeigt nicht mehr, wie im letzten Pro-
gramm, nacheinander die Ziffern 1 bis 4 an, sondern die vier Ziffern aus der Liste z[].
Der Hauptteil des Programms ist völlig neu und läuft wieder als Endlosschleife. Der Benutzer wird aufge-
fordert, eine vierstellige Zahl einzugeben. Was auch immer der Benutzer tatsächlich eingibt, wird in eine
gültige vierstellige Zahl umgewandelt, die danach etwa 2Sekunden lang angezeigt wird. Anschließend
erscheint erneut die Aufforderung zur Eingabe einer Zahl.
Das Programm darf auch bei ungültigen Eingaben nicht einfach abbrechen.
try:
while True:
s = input("Bitte vierstellige Zahl eingeben:")
Die Endlosschleife wird in diesem Programm nicht zur Anzeige der Ziffern verwendet, sondern für die
Benutzereingabe. Sie läuft also nicht viele Male pro Sekunde durch, sondern nur einmal für jede eingege-
bene Zahl.
Der Benutzer wird aufgefordert, eine vierstellige Zahl einzugeben. Die Funktion input() übernimmt die
Eingabe im Klartext, ohne sie auszuwerten, und speichert sie als Zeichenkette in der Variablen s. Diese
Zeichenkette kann beliebig lang sein und neben Ziffern beliebige andere Zeichen enthalten. Ungültige
oder fehlende Zahlen sollen einfach als 0 angezeigt werden.










