2017-10-04 169 views
-1

我隨機地想到製作一個程序來告訴時間之間的差異,到目前爲止它的工作原理,儘管當我添加另一個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

請加上編程語言和版本的使用你的問題。 – ventiseis

回答

0

也許問題是由於字符串操作。

嘗試通過此更換輸入代碼:

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

雖然我想添加一條錯誤消息,如果他們輸入一個字母。當我輸入一個字母時,程序停止運行並顯示錯誤。我假設它不工作,因爲代碼期望一個整數。我怎樣才能解決這個問題? – Logster

+0

你可以發現異常 –

0

你運行python2還是python3?此外,您的時間指標使用什麼?

你的錯誤可能是考慮到Python版本正在運行

在python2 input()接受一個字符串,並在其上運行eval()它把它變成了最有可能的類型具有不同的功能input()的結果。例如,如果我在命令行中輸入2,python2將以2作爲字符串,"2",然後運行eval()將它變成一個整數,2See the documentation for input() here

input()另一方面,python3只是從命令行輸入並直接作爲字符串處理它。因此,如果您要輸入2作爲num1,則num1將生效爲"2",除非另有說明。 See documentation for python3 input() here

因此,如果你正在運行python2,這個程序應該可以正常工作。如果你正在運行python3,當你嘗試減去字符串時會遇到錯誤。

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