VSCode 中的 python 代码输出与 运行 我的 mac 终端中的代码输出不同

My python code output in VSCode is different from the output I recieve when running my code in my mac terminal

sum = 0
codeid = input("Please enter your ID code: ")

if len(str(codeid)) == 10:
    sum = sum + int(str(codeid) [0]) * 10
    sum = sum + int(str(codeid) [1]) * 9
    sum = sum + int(str(codeid) [2]) * 8
    sum = sum + int(str(codeid) [3]) * 7
    sum = sum + int(str(codeid) [4]) * 6
    sum = sum + int(str(codeid) [5]) * 5
    sum = sum + int(str(codeid) [6]) * 4
    sum = sum + int(str(codeid) [7]) * 3
    sum = sum + int(str(codeid) [8]) * 2
    remainder = sum % 11
    if remainder >= 2 and (11 - remainder == int(str(codeid) [9])):
        print ("valid ID")
    elif remainder < 2 and (remainder == int(str(codeid) [9])):
        print ("valid ID")
    else : 
        print ("Invalid ID")          
else: 
print ("Invalid ID")

所以这是我创建的一个简单代码,用于检测特定类型的 ID 是否有效。例如,数字“0462519449”由于算法和输出 returns “有效”而有效,当我 运行 VSCode 中的代码时;但是,当我保存程序并从终端 运行 时,我得到输出“无效 ID”,这是不正确的,因为它必须有效。 有人知道问题出在哪里吗?

我认为您在终端中使用的是 Python 2.

在 Python 3 中,input return 是一个字符串(因此您所有的 str(codeid) 调用都是不必要的)。

在 Python 2 中,input 计算给定的任何文本,因此如果您输入 0462519449,它将 return 一个整数。具体来说,它将 return int 462519449,因为前导零无效。然后你的检查 len(str(codeid)) == 10 是错误的,这就是你得到“无效 ID”的原因。

如果您是 运行 Python 2,则需要使用 raw_input 而不是 input