繁体   English   中英

我在 VSCode 中的 python 代码 output 与我在 mac 终端中运行我的代码时收到的 output 不同

[英]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”是有效的,当我在 VSCode 中运行代码时,output 返回“有效”; 但是,当我保存程序并从终端运行它时,我得到 output “无效 ID”,这是不正确的,因为它必须是有效的。 有谁知道问题是什么?

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM