2016-02-09 257 views
-1

好了,這裏是我的代碼:爲什麼這個函數的返回值沒有返回?

def is_prime(n): 
     n = abs(int(n)) 
     if n < 2: 
      return False 
     elif n == 2: 
      return True 
     elif n%2 == 0: 
      return False 
     else: 
      prime(n) 



    def prime(n): 
     for x in range(3, int(n**0.5)+1,2): 
      if n%x == 0: 
       return False 
      else: 
       return True 

    print is_prime(6577) 

但每當我在shell中運行這個返回「無」,我不明白爲什麼。任何幫助,將不勝感激。

+3

因爲最終'else'在'is_prime'沒有返回 – user2718281

+0

哦不能相信我錯過了,謝謝。 –

+0

沒問題,我們都有休息日 – user2718281

回答

1

您的最終elseis_prime什麼也沒有返回。你甚至可以刪除else完全,但是這只是個人喜好

def is_prime(n): 
    # You don't really need to take abs value cause you already do a check for < 2 which includes negative numbers 
    n = abs(int(n)) 
    if n < 2: 
     return False 
    elif n==2: 
     return True 
    elif n%2 == 0: 
     return False 
    return prime(n)