函数未返回值(在大多数情况下)

时间:2017-02-08 12:50:27

标签: python function return

我创建了这个函数,将最接近的素数返回到x (等于或大于):

def primo(x):
i=2
prime=True
if x>=0:
    while i<=x**(1/2) and prime==True:
        if x%i==0:
            prime=False
        else:
            i+=1
    if (prime==True or x==2 or x==3) and x>1:
        return x
    else:
        primo(x+1)

else:
    primo(x+1)

但只有当x已经是素数时它才会返回。

我试图将print(x)放在与返回相同的行上,但如果x不是素数(例如12),它只打印最后的数字,它确实不归还价值。

我希望代码在每种情况下都能返回素数,尤其是x不是素数时(在x为素数之前它会绕过代码)。

感谢。

1 个答案:

答案 0 :(得分:5)

您需要return递归函数调用的值

else:
    return primo(x+1)