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
。
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
。