【发布时间】:2022-01-03 12:57:57
【问题描述】:
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 中运行代码时,输出返回“有效”;但是,当我保存程序并从终端运行它时,我得到输出“无效 ID”,这是不正确的,因为它必须是有效的。 有谁知道问题出在哪里?
【问题讨论】:
-
此外,如果您在每种错误情况下都输出相同的消息 Invalid ID,则您看不到检查在哪个位置失败。这使得调试变得不必要地困难。在每种情况下使用不同的错误消息,或者通过退出代码区分情况。即使在错误情况下,您的程序现在也会返回退出代码 0,这无论如何都不是一个好主意。
-
良好的旧调试有什么问题,我们 20 年前没有 SO,我们能够找到并解决问题
标签: python python-3.x bash visual-studio-code terminal