从python中的键盘获取多个输入

时间:2017-05-24 19:08:58

标签: python raspberry-pi2 keypad

我有一个覆盆子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位数字。

2 个答案:

答案 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

这将等到你点击一个或多个键,如果该键是*,那么它会打印你的号码并结束循环。

希望这可以帮助解决这个问题的任何人。