Zahlenfeld (Vergleich funktioniert nicht)
Verfasst: Dienstag 21. April 2020, 21:25
Hi,
ich bin neu hier im Forum. Ich habe ein Zahlenfeld angeschlossen und den folgenden Code.
[code][import RPi.GPIO as gpio
import time
gpio.setmode(gpio.BCM)
matrix = [["1","2","3", "A"],
["4","5","6", "B"],
["7","8","9", "C"],
["*", "0", "#", "D"]]
spalte = [12, 16, 20, 21]
zeile = [18, 23, 24, 25]
nummer=""
for j in range(4):
gpio.setup(spalte[j], gpio.OUT)
gpio.output(spalte[j], 1)
gpio.setup(zeile[j],gpio.IN,
pull_up_down=gpio.PUD_UP)
def keypad():
while True:
for j in range(4):
gpio.output(spalte[j], 0)
for i in range(4):
if gpio.input(zeile[i]) == 0:
benutzerEingabe = matrix[i][j]
while gpio.input(zeile[i]) == 0:
pass
return benutzerEingabe
gpio.output(spalte[j], 1)
return False
def eingabe(nummer):
Nummer = ""
for i in range(6):
nummer = str (nummer+keypad())
#print (z)
time.sleep (0.2)
print(nummer)
Oliver = ("236889")
John = ("561984")
a = ("Oliver")
b = ("John")
Versuche = 1
VersFrei = 0
print("Sir please enter your verification number: ")
nummer = eingabe(str (nummer))
while nummer != Oliver or nummer != John:
if nummer == Oliver:
print ("Access granted "+ a)
break
elif nummer == John:
print ("Access granted "+ b)
break
else:
print ("Access not granted")
Versuche += 1
if Versuche == 6:
break
VersFrei = 6 - Versuche
if VersFrei > 1:
print ("Only "+str(VersFrei) + " tries left!")
else:
print ("Only "+str(VersFrei) + " try left!")
print("Sir please enter your verification number: ")
eingabe(str (nummer))/code]
Bei egal welcher Eingabe wird immer angezeigt das dies die falsche Nummer ist auch wenn die Zahlen stimmen.
Was hab ich falsch gemacht?
LG Santiago
ich bin neu hier im Forum. Ich habe ein Zahlenfeld angeschlossen und den folgenden Code.
[code][import RPi.GPIO as gpio
import time
gpio.setmode(gpio.BCM)
matrix = [["1","2","3", "A"],
["4","5","6", "B"],
["7","8","9", "C"],
["*", "0", "#", "D"]]
spalte = [12, 16, 20, 21]
zeile = [18, 23, 24, 25]
nummer=""
for j in range(4):
gpio.setup(spalte[j], gpio.OUT)
gpio.output(spalte[j], 1)
gpio.setup(zeile[j],gpio.IN,
pull_up_down=gpio.PUD_UP)
def keypad():
while True:
for j in range(4):
gpio.output(spalte[j], 0)
for i in range(4):
if gpio.input(zeile[i]) == 0:
benutzerEingabe = matrix[i][j]
while gpio.input(zeile[i]) == 0:
pass
return benutzerEingabe
gpio.output(spalte[j], 1)
return False
def eingabe(nummer):
Nummer = ""
for i in range(6):
nummer = str (nummer+keypad())
#print (z)
time.sleep (0.2)
print(nummer)
Oliver = ("236889")
John = ("561984")
a = ("Oliver")
b = ("John")
Versuche = 1
VersFrei = 0
print("Sir please enter your verification number: ")
nummer = eingabe(str (nummer))
while nummer != Oliver or nummer != John:
if nummer == Oliver:
print ("Access granted "+ a)
break
elif nummer == John:
print ("Access granted "+ b)
break
else:
print ("Access not granted")
Versuche += 1
if Versuche == 6:
break
VersFrei = 6 - Versuche
if VersFrei > 1:
print ("Only "+str(VersFrei) + " tries left!")
else:
print ("Only "+str(VersFrei) + " try left!")
print("Sir please enter your verification number: ")
eingabe(str (nummer))/code]
Bei egal welcher Eingabe wird immer angezeigt das dies die falsche Nummer ist auch wenn die Zahlen stimmen.
Was hab ich falsch gemacht?
LG Santiago