我随机想到制作一个程序来区分时间和它到目前为止的工作,虽然当我添加另一个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")
答案 0 :(得分:0)
你在运行python2还是python3?另外,什么用于您的时间指标?
你的bug可能是input()
在运行python版本时具有不同功能的结果
input()
接受一个字符串并在其上运行eval()
,将其转换为最可能的类型。例如,如果我在命令行输入2,则python2会将2作为字符串"2"
接收,然后在其上运行eval()
将其转换为整数2
。 See the documentation for input()
here
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');