Python 为什么这个返回值为none的函数?

Python 为什么这个返回值为none的函数?,python,function,return-value,Python,Function,Return Value,好的,这是我的代码: 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)

好的,这是我的代码:

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)
def为素数(n):
n=abs(int(n))
如果n<2:
返回错误
elif n==2:
返回真值
elif n%2==0:
返回错误
其他:
素数(n)
def基本(n):
对于范围(3,int(n**0.5)+1,2)内的x:
如果n%x==0:
返回错误
其他:
返回真值
打印为素数(6577)

但每当我在shell中运行它时,它都返回“无”,我不明白为什么。任何帮助都将不胜感激。

您在
中的最终
else
将不返回任何内容。您甚至可以将
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)
def为素数(n):
#您实际上不需要取abs值,因为您已经检查了<2,其中包括负数
n=abs(int(n))
如果n<2:
返回错误
elif n==2:
返回真值
elif n%2==0:
返回错误
返回素数(n)

因为你在
中的最后一个
else
是\u prime
没有返回任何结果,真不敢相信我错过了,谢谢。没问题,我们都休息了days@user2341963你应该把它作为一个答案贴出来,这样他们就可以接受它,而不会出现一个未回答的问题。我会自己做,但我不想抢走你15点的声誉:)