Guten Tag,
Ich habe ein Programm geschrieben, bei welchem eine PIN mit einer Textdatei verglichen werden soll.
Die Textdatei sieht wie folgt aus:
Herbert 1234
Norbert 5678
Jan 9876
Anschließen soll der eingegebene PIN erst in eine Liste eingeschrieben werden und bei erneuter Ausgabe wieder ausgetragen werden. Das möchte ich später für eine Abfrage zum Türöffnen nutzen. Es soll mit dem PIN eine freie Kabine geöffnet werden und dann solange für diesen PIN gesperrt sein, bis dieser ihn erneut eingibt um sich abzumelden.
Nun klappt das Programm in meiner Shell aber nicht in der Console meines Raspberry pi´s.
Woran könnte dies liegen?
Hier das Programm
from time import sleep
def is_pin_valid(PIN):
return len(PIN) == 4 and PIN.isdigit()
speicher = [0,0,0,0,0,0]
gefunden = 0
while True:
for i in range(1,6):
PIN = input("Bitte geben sie Ihren Pin ein: ")
data = open("pin.txt").read()
if PIN in data and is_pin_valid(PIN):
print("Der PIN war korrekt")
for k in range(0,6):
if speicher[k] == PIN:
speicher[k] = 0
gefunden = True
print(speicher)
break
for j in range(0,6):
if speicher[j] == 0 and not gefunden:
speicher[j] = PIN
print(speicher)
break
gefunden = False
sleep(0.5)
break
else:
print("Dieser Pin ist nicht korrekt")
if i > 4 :
print("5 Fehlversuche!")
sleep(0.5)
Alles anzeigen
Villeicht habt ihr ja eine Idee, was nicht davon mit Raspberry Pi klappen könnte.
Ich kann das Programm starten, aber nachdem ich den PIN eingebe kommt folgender Fehler.
Traceback (most recent call last):
File "Ladestation2.py", line 16, in <module>
if PIN in data and is_pin_valid(PIN):
TypeError: 'in <string>' requires string as left operand, not int
Vielen Dank,
euer doggy