登录
首页 >  Golang >  Go问答

python函数在循环中调用的问题?

来源:SegmentFault

时间:2023-03-10 20:58:23 336浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《python函数在循环中调用的问题?》,涉及到,有需要的可以收藏一下

问题内容

a=666
b=1414
def gcd(x,y):
    x,y=y,x%y
    while(x%y>0):
        gcd(x,y)
    else:
        return y
print(gcd(666,1414))

这是一个求最大公约数的python程序,为什么在函数的循环体调用函数无法运行

正确答案

因为你这里没有给return:

a = 666
b = 1414


def gcd(x, y):
    x, y = y, x % y
    while x % y > 0:
        return gcd(x, y)    # 

没有return的时候,你的代码一直在

x, y = y, x % y
while x % y > 0:
    gcd(x, y)

这三行来回死循环,当循环到

x
是82,
y
是10的时候,进入
while
循环,进入
gcd(x, y)
中,然后经过
x, y = y, x % y
的交换和计算,
x
此时为10,
y
此时为2,按理说此时应该走到了
else
分支,你有
return y
,但是这个return只是退出你上次进入
gcd
这次递归函数,而你并没在调用递归的地方再次return,这就导致了一直在while那里死循环。

今天关于《python函数在循环中调用的问题?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于mysql的内容请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>