在Python中输入并存储一个以0(零)开头的数字?

2024-05-15 02:44:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用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公司

编辑:对不起-错误的剪切和粘贴。哼!在


Tags: id编辑datetimescan错误键盘学生计划
1条回答
网友
1楼 · 发布于 2024-05-15 02:44:00

使用Python2,input解释您输入的所有内容(这也是一个安全漏洞)

因为在python2中以0开头的数字被认为是八进制的(在python3中不再是这样了,因为必须使用0o前缀),所以存在语法错误,因为0971558包含高于7的数字。在

我将使用raw_input来获得一个真正的字符串:

scan = raw_input('Please scan your ID: ')

如果要转换为整数,int可以接受前导零,这样int(scan)就可以工作而不必将它们剥离。在

请注意,您的原始代码在Python3中可以正常工作。在

相关问题 更多 >

    热门问题