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

0 python return function

我创建了这个函数来将最接近的素数返回到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)
Run Code Online (Sandbox Code Playgroud)

但它只有在x已经素数时才会返回.

我试图print(x)在返回的同一行上放置,但如果x不是素数(例如12),它只打印最后的数字,它不会返回值.

我希望代码在每种情况下返回素数,尤其是如果x不是素数(它会绕过代码直到x为素数).

谢谢.

Cor*_*mer 5

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

else:
    return primo(x+1)
Run Code Online (Sandbox Code Playgroud)