【问题标题】:Function is not returning the value (in most cases) [duplicate]函数没有返回值(在大多数情况下)[重复]
【发布时间】:2017-06-26 02:24:30
【问题描述】:

我创建了这个函数来返回 与 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 是素数)。

谢谢。

【问题讨论】:

  • 我很确定 python 有内置的方法可以做到这一点?

标签: python function return


【解决方案1】:

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

else:
    return primo(x+1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-27
    • 2020-06-20
    • 2012-02-13
    • 2019-09-07
    • 2021-07-02
    • 1970-01-01
    • 2017-05-21
    • 1970-01-01
    相关资源
    最近更新 更多