2016-04-23 140 views
-7

這就是我輸入:問題與if-else語句

def greater_less_equal_5(answer): 
    if 6 > 5: 
     return 1 
    elif 4 < 5: 
     return -1 
    else: 
     return 0 

print greater_less_equal_5(4) 
print greater_less_equal_5(5) 
print greater_less_equal_5(6) 

,並給了我這個筆記

哎呀,再試一次。它看起來像你的函數輸出1而不是-1 ,當答案是3.確保你正確地填寫了if和elif語句 !

,這就是在右上角顯示想出了:

>1 
>1 
>1 
>None 

不管我周圍的數字是如何改變和>/<我甚至試過==!=它仍然輸出1 1 1 None

我搜索周圍的任何可能的提示和看過別人停留在同樣的問題,因爲我,當我試圖自己解決了我然後得到:

def greater_less_equal_5(answer): 
    if > 5: 
     return 1 
    elif < 5: 
     return -1 
    else: 
     return 0 

print greater_less_equal_5(4) 
print greater_less_equal_5(5) 
print greater_less_equal_5(6) 

,輸出是:

File "python", line 2 
    if > 5: 
    ^
SyntaxError: invalid syntax 

這個測試是否總是輸出一個失敗的結果,讓我支付專業人士並尋求他們的幫助?

而對於這個給出的提示是:

確保如果和elif的語句結束與冒號:

你的代碼應該是這個樣子:

if EXPRESSION: 
    do something 
elif OTHER EXPRESSION: 
    do something 
else: 
    do something 

上午我只是錯過了一些可怕的基本?

+2

請編輯您的答案,並使用代碼標記。 – cromod

+5

這聽起來像是你正試圖解決在線平臺上的在線挑戰,在這種情況下,謹慎提及具體說明的問題(參見[XY問題](http://meta.stackexchange.com/)問題/ 66377 /什麼,是最XY-問題))。 –

+2

你錯過了一些元素。你的函數從不會引用名爲_answer_的參數(很差),所以它通常會根據你硬編碼的數字來做同樣的事情。換句話說,'6'因爲總是大於'5',所以它總是返回值'1'。 – martineau

回答

2

你確實錯過了一些基本的東西 - 即你的函數的輸出完全不依賴於answer。無論你在answer作爲飼料,因爲6 > 5總是True,它總是會返回的結果,即的情況。

你需要的是

def greater_less_equal_5(answer): 
    if answer > 5: 
     return 1 
    elif answer < 5:   
     return -1 
    elif answer == 5: 
     return 0 
+0

謝謝大家的回覆。我實際上已經在發佈這個內容的20分鐘內想到了這一點。我有問題,忘記把答案,所以它會引用表達只是忘了刪除帖子。 – Zathamiel

0

您缺少表達的「答案」的變量,它傳遞給你的函數

def greater_less_equal_5(answer): 
    if answer > 5: 
     return 1 
    elif answer < 5:   
     return -1 
    else: 
     return 0 

print greater_less_equal_5(4) 
print greater_less_equal_5(5) 
print greater_less_equal_5(6)