代码不是 运行

Code not running

我随机想到制作一个程序来区分时间和到目前为止它的工作原理,尽管当我添加另一个 elif 时,代码没有 运行。第一部分有效,但如果数字相同,则最后一个 elif 语句不会 运行.

    num1 = input("Enter your first number: ")
    num2 = input("Enter your second number: ")

    if num1 > num2:
        print (num1 - num2)

    elif num1<num2:
        print (num2 - num1)

    elif num1==num2:
        print ("There is no difference")

你是运行宁python2还是python3?此外,您的时间指标使用什么?

您的错误可能是 input() 给定您 运行ning

的 python 版本具有不同功能的结果 python2 中的

input() 接收一个字符串并在其上 运行s eval() 将其转换为最可能的类型。比如我在命令行输入2,python2会把2当成一个字符串,"2",然后在上面输入运行eval(),变成一个整数,2See the documentation for input() here.

另一方面,python3 中的

input() 只是从命令行接收输入并将其直接作为字符串处理。因此,如果您要为 num1 输入 2,则 num1 将以 "2" 的形式存在,除非另有说明。 See documentation for python3 input() here.

因此,如果您 运行 宁 python2,这个程序应该可以正常工作。如果您 运行 宁 python3,当您尝试减去字符串时,您将 运行 出错。

可能是字符串操作的问题

尝试用这个替换输入代码:

num1 = int(input("Enter your first number: "))
num2 = int(input("Enter your second number: "))

我是 运行 Python 2,如果我将您的程序包含在这样的函数中,效果会很好。

num1 = input("Enter your first number: ")
num2 = input("Enter your second number: ")

def difference(num1,num2):
    if num1 > num2:
        print (num1 - num2)

    elif num1<num2:
        print (num2 - num1)

    elif num1==num2:
        print ("There is no difference")



difference(num1,num2)

你可以这样做:

try:
    num1 = int(input("Enter your first number: "))
    num2 = int(input("Enter your second number: "))

    if num1 > num2:
        print (num1 - num2)    
    elif num1<num2:
        print (num2 - num1)
    elif num1==num2:
        print ("There is no difference")
except ValueError:
    print('Not a number');