2015-10-26 79 views
-1

這是我的代碼,我無法讓最後一條IF語句正常工作,我希望它只在答案不是偶數或奇數時打印,但幾乎每次都打印。我應該如何解決它?偶數還是奇數? Python in JES Program

def evenOdd(x): 
for x in range (1, 6): 
    num= random.randrange(1,101) 
    ans=raw_input("Is" + str(num) + "Odd or Even?") 
    if (num % 2 == 0 and ans=="even") or (num % 2 == 1 and ans == "odd"): 
    print "correct" 
    if (num % 2 == 0 and ans=="odd") or (num % 2==1 and ans == "even"): 
    print "incorrect" 
    if (num % 2 ==0 or num % 2 == 1 and ans != "odd" or ans != "even"): 
    print "Please answer with Even or Odd" 
+0

'num%2 == 0或num%2 == 1' - 爲什麼它會比這更進一步?其中之一肯定是真的!你爲什麼不測試'if ans!=「odd」和ans!=「even」:',因爲這個數字是什麼都沒關係? – jonrsharpe

回答

0

的問題是,在你的最後if,你檢查每個單獨的平等,而不是爲組。您需要將他們分組爲邏輯分組。另外,我不知道爲什麼這是一個你永遠不會使用的輸入的函數。這會爲你工作:

import random 
for x in range(1, 6): 
    num = random.randrange(1, 101) 
    ans = input("Is" + str(num) + "Odd or Even?") 
    if (num % 2 == 0 and ans == "even") or (num % 2 == 1 and ans == "odd"): 
     print("correct") 
    if (num % 2 == 0 and ans == "odd") or (num % 2 == 1 and ans == "even"): 
     print("incorrect") 
    if (ans != "odd" or ans != "even"): 
     print("Please answer with Even or Odd") 

在最後一行的變化是因爲你實際上並不需要檢查,如果數是奇數還是偶數,只是如果用戶比'odd''even'其他一些迴應。

相關問題