Python中关于递归函数的问题

img


为什么要Rerurn r呢 就算不return r,那个r=gcd也是在调用执行函数啊,直到y等于0不就会return x了吗,所以Rerurn r有必要写嘛

有必要,如果不写return r,就会导致你第五行的r值计算了半天却并没有返回值给到你的倒数第二行的r

有必要。该函数定义了有返回值,所以必须要return。如果函数第一次执行条件不满足,就会走else分支,如果else分支不写return语句,则该函数无法保证有返回值,递归后的return x无法保证第一次执行的else语句有返回,所以else分支中需要有return语句。至于是return r还是return函数调用,那只是写法问题。