我正在用Python2开发一个简单的学生出勤计划。我正在使用一个HID扫描仪,它可以充当键盘。学生证上都有一个条形码,上面有他们的身份证号码。不幸的是,ID号以零开头,所以scanner生成的值是零。一旦扫描发生,就会产生无效的令牌错误,因为Python认为它是一个八进制数,序列中的一些数字是8和9。在
我现在测试的简单代码是:
def Main():
while(loop == True):
scan = input('Please scan your ID: ')
dateTime = time.strftime('%I:%M:%S %d/%m/%y')
print(dateTime)
print(scan)
编辑:错误为:
^{pr2}$我试过很多不同的解决办法,但都给了我一个错误。我试着把它转换成声明行中的一个字符串,但我尝试的方法似乎不起作用。此外,扫描仪不能选择将输入用引号括起来。有人有我失踪的魔法子弹吗?TIA公司
编辑:对不起-错误的剪切和粘贴。哼!在
使用Python2,
input
解释您输入的所有内容(这也是一个安全漏洞)因为在python2中以0开头的数字被认为是八进制的(在python3中不再是这样了,因为必须使用
0o
前缀),所以存在语法错误,因为0971558
包含高于7的数字。在我将使用
raw_input
来获得一个真正的字符串:如果要转换为整数,
int
可以接受前导零,这样int(scan)
就可以工作而不必将它们剥离。在请注意,您的原始代码在Python3中可以正常工作。在
相关问题 更多 >
编程相关推荐