python - 输入以0

时间:2016-03-20 21:29:49

标签: python numbers zero

我在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)

提前致谢。

2 个答案:

答案 0 :(得分:1)

你似乎在使用Python 2.在Python 2中,input尝试将输入字符串计算为Python表达式,而Python 2语法中数字文字的前导0意味着数字位于octal或基数8.由于89不是基数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号码:)