2016-02-09 207 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)