【问题标题】:My python code output in VSCode is different from the output I recieve when running my code in my mac terminal我在 VSCode 中的 python 代码输出与在我的 mac 终端中运行我的代码时收到的输出不同
【发布时间】: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


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-06
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 2021-06-27
    • 2022-08-22
    相关资源
    最近更新 更多