我有一个覆盆子pi,我需要使用python从3x4键盘获取2位数字。键盘工作正常,因为我可以得到一个数字,但我无法得到2。
获取单个号码的代码是:
kp=keypad()
digit = None
while digit == None:
digit = kp.getKey()
print digit
我目前的尝试:
kp=keypad()
digit = None
fin = ""
extra = ""
geb = ""
while digit == None:
digit = kp.getKey()
fin = digit
extra = digit
while fin == extra:
digit = kp.getKey()
geb = str(fin) + str(digit)
print geb
我需要能够获得一个2位数字,如12或56,但现在只能获得1位数字。
答案 0 :(得分:0)
查看原始代码,kp.getKey()
似乎偶尔会返回None
。编写循环以追加到列表,直到它有两个使用相同逻辑的元素:
lst = []
kp = keypad()
while len(list) < 2:
digit = kp.getKey()
if digit is not None:
lst.append(digit)
print ''.join(lst)
答案 1 :(得分:0)
好吧我明白了:
kp = keypad()
list = ['']
digit = None
while True:
digit = kp.getKey()
if digit != None and digit != '*':
list.append(str(digit))
time.sleep(.5) #otherwise you end up repeating the same number until a new one is pressed
digit = None
elif digit = '*':
print ''.join(list)
break
这将等到你点击一个或多个键,如果该键是*,那么它会打印你的号码并结束循环。
希望这可以帮助解决这个问题的任何人。