代码未运行

时间:2017-10-04 17:44:07

标签: python time calculator

我随机想到制作一个程序来区分时间和它到目前为止的工作,虽然当我添加另一个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")

4 个答案:

答案 0 :(得分:0)

你在运行python2还是python3?另外,什么用于您的时间指标?

你的bug可能是input()在运行python版本时具有不同功能的结果

python2中的

input()接受一个字符串并在其上运行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,则在尝试减去字符串时将遇到错误。

答案 1 :(得分:0)

问题可能是因为字符串操作。

尝试用此替换输入代码:

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

答案 2 :(得分:0)

我正在运行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)

答案 3 :(得分:0)

你可以这样做:

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');