当前位置: 首页 > 面试题库 >

返回语句的Python问题

訾安邦
2023-03-14
问题内容

您好,我是python的新手,想知道您是否可以帮我一些忙。我一直在玩这段代码,似乎无法使其正常工作。

    import math

def main():
    if isPrime(2,7):
        print("Yes")
    else:
        print("No")

def isPrime(i,n):
    if ((n % i == 0) and (i <= math.sqrt(n))):
        return False
    if (i >= math.sqrt(n)):
        print ("is Prime: ",n)
        return True
    else:
        isPrime(i+1,n)
main()

现在,isPrime方法的输出如下:

is Prime:  7
No

我确定该函数应返回true,然后应打印“是”。我想念什么吗?


问题答案:

您将放弃递归调用的返回值:

def isPrime(i,n):
    if ((n % i == 0) and (i <= math.sqrt(n))):
        return False
    if (i >= math.sqrt(n)):
        print ("is Prime: ",n)
        return True
    else:
        # No return here
        isPrime(i+1,n)

您也想传播递归调用的值,包括一条return语句:

else:
    return isPrime(i+1,n)

现在,您的代码将输出:

>>> isPrime(2,7)
is Prime:  7
True


 类似资料:
  • 我做了一点实验,发生了一些我认为没有预料到的事情。这个问题是基于递归和第7行注释的返回语句 我的问题是,在使用示例输入“1 9 11 5 6”的测试期间,如果我有返回语句。输出仅为“值1 9 11总计21”,但如果没有return语句,输出为“值1 9 11总计21,值1 9 5 6总计21”。我想知道是否有什么可以解释为什么,我认为return语句会简单地“加速”结束这个方法的递归实例,而不是简

  • 问题内容: 我刚刚学习(正在学习)函数参数在Python中的工作方式,并且在没有明显原因的情况下开始进行实验: 给出了输出: 哪里来的?还有,这是什么? 问题答案: 它是函数的返回值,您可以将其打印出来。如果没有语句(或者只是没有参数的),则将隐式添加到函数的末尾。 您可能想返回函数中的值,而不是打印它们:

  • 我不得不使用全局变量found来指示在哪里找到了一个和。返回语句始终未定义。 此外,如果在下面的if语句中使用return语句,代码将无法正常工作。 这不是问题的最佳解决方案,但这是我得到的工作版本。 返回语句之间的****,删除时代码工作,否则我要么得到false或未定义。我不明白这部分!为什么删除返回就能解决问题,我认为每个递归调用都必须用返回语句进行。 问题可能是由于多次呼叫造成的吗?我是不

  • 问题内容: 我想知道我们如何获得函数返回的值-python return语句实际返回的内容。 考虑以下代码: 调用时,我们获得了价值。 绑定整数对象。 这是什么意思?return语句实际上在这里返回什么?该对象?还是变量名?还是绑定到对象?或者是其他东西? 我们如何获得return语句返回的值? 问题答案: x绑定整数对象5。 是的,是一个持有对整数对象5的引用的变量,该对象也持有对该整数对象的引

  • 问题内容: 为什么这给了我一个丢失的退货陈述错误?每个if / else都有返回值,最后一个括号出现错误 问题答案: 每个语句都在一个语句内。虽然从逻辑上讲这是不可能的,但是当所有评估都不为真时,编译器需要返回。 我建议: 我认为,此解决方案可解决编译器问题并稍微提高可读性。 或者,有以下解决方案: 引发异常将使你可以退出方法而无需返回任何信息……因为可以说,如果到达最后一个,显然会出错。

  • 如何在这种类型的返回语句中添加if语句: 显然,我不能直接在中删除if语句。