我在python中制作程序。假设接收一个GTIN号码并放入一个列表,然后检查它是否有效。该程序有效,但只要我输入以0开头的GTIN号码,我就会收到"无效令牌(,第1行)" 错误。我真的需要一个解决方案,因为有些产品的GTIN编号从0开始。
当我输入一个数字时,例如:
96080832
该计划效果很好。
当我输入如下数字时:
00256986
我收到错误:
invalid token (<string>, line 1)
指着这一行:
inputtedInt = int(input("Enter the gtin number: "))
整个def:
def chooseOption(inputInt):
while(inputInt > 0 and inputInt < 4):
if(inputInt == 1):
print("you picked option number 1")
showOptions()
break
elif(inputInt == 2):
print(" ")
inputtedInt = int(input("Enter the gtin number: "))
gtin = map(int,str(inputtedInt))
checkValidity(gtin, 2)
print(" ")
showOptions()
break
elif(inputInt == 3):
print("you picked option number 3")
showOptions()
break
else:
option = int(input("Error - enter a number from 1 to 3. : "))
chooseOption(option)
提前致谢。
答案 0 :(得分:1)
你似乎在使用Python 2.在Python 2中,input
尝试将输入字符串计算为Python表达式,而Python 2语法中数字文字的前导0
意味着数字位于octal或基数8.由于8
和9
不是基数8中的有效数字,因此此输入构成语法错误。
如果您应该使用Python 3,请使用Python 3.如果您应该使用Python 2,请使用raw_input
而不是input
。
此外,如果您关心保留前导零之类的内容,则应将输入保持为字符串,并且只要在其上调用int
作为整数进行数学处理。
答案 1 :(得分:0)
引发错误是因为您正在将str ant /映射到行中:
gtin = map(int,str(inputtedInt))
例如,如果你要运行:
a = 005
您将收到以下错误:
File "<stdin>", line 1
a = 005
^
SyntaxError: invalid token
溶剂 - &gt;你应该使用字符串的GTIN号码:)