python - 输入以 0 开头的数字

python - inputting numbers that start with 0

我正在 python 制作程序。假设接收一个 GTIN 号码并放入一个列表中,然后检查它是否有效。该程序有效,但只要我输入以 0 开头的 GTIN 编号,我就会收到 "invalid token (, line 1)" 错误。我真的需要一个解决方案,因为有些产品的 GTIN 编号以 0 开头。

当我输入一个数字例如:

96080832

程序运行良好。

当我输入这样的数字时:

00256986

我得到一个错误:

invalid token (<string>, line 1)

指向这一行:

inputtedInt = int(input("Enter the gtin number: "))

整个定义:

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)

提前致谢。

您似乎在使用 Python 2。在 Python 2 中,input 尝试将输入字符串计算为 Python 表达式,并且前导 [= Python 2 语法中数字文字上的 11=] 表示该数字在 octal 或基数 8 中。因为 89 不是基数 8 中的有效数字,此输入构成语法错误。

如果您应该使用 Python 3,请使用 Python 3。如果您应该使用 Python 2,请改用 raw_input input.

此外,如果您关心保留前导零之类的内容,则应将输入保留为字符串,并且仅在您想对其进行数学运算时才调用 int 作为整数。

出现错误是因为您在行中映射 str ant/to int:

gtin = map(int,str(inputtedInt))

例如,如果您输入 运行:

a = 005

您将收到以下错误:

File "<stdin>", line 1
a = 005
      ^
SyntaxError: invalid token

解决方案 -> 您应该使用字符串作为 GTIN 号码:)