2017-04-21 40 views
-1

我必須編寫一個函數來查找給定的數字(num)是否在10的倍數的2之內。我使用模數(%)來獲得餘數,但它似乎沒有正常工作。幫幫我?Mod餘數:如果num是2的倍數10

def nearten(num): 
    if num%10<=2: 
     return True 
    elif num%10>2: 
     return False 
+0

歡迎來到StackOverflow。請閱讀並遵守幫助文檔中的發佈準則。 [最小,完整,可驗證的示例](http://stackoverflow.com/help/mcve)適用於此處。在發佈您的MCVE代碼並準確描述問題之前,我們無法爲您提供有效的幫助。 – Prune

回答

1

最重要的是,你只檢查,以「個位」數字是0,1,或2 - 你錯過了8和9

作爲造型筆記,不檢查一個布爾表達式,然後對剛剛找到的結果進行硬編碼。正如目前所寫,您的功能可以簡化爲:

def nearten(num): 
    return num%10 <= 2 

您是否看到過這種方式?首先,elif檢查不會給你任何新的信息:你已經知道的結果必須是當你通過時,如果的條件。

然後,你的聲明讀起來像

if this condition is true, return true 
otherwise, we know it's false; return false. 

這是多餘的。你的程序中有一個True/False值,只需返回那個值,而不是使用常量。


維修...

我將離開這個作爲一個練習的學生:「內」 2意味着你必須檢查兩側,所以你必須拿起情況下個位數是8或9.你可以寫出表達式來做到這一點嗎?

+0

哦,我的天啊!這使得現在更有意義,謝謝! – jay

-1
def near_ten(num): 
    if num%10<=2 : 
     return True 
    elif num%10 >=8: 
     return True 
    else: 
     return False