如何将while循环转换为递归方法?

时间:2012-10-20 06:59:55

标签: python recursion while-loop

我需要帮助将此循环转换为递归方法吗?我该怎么做?

while z <= len(list):
     if z = len(list): #base case
        return something
     else:
        #do something else
     z += 1

3 个答案:

答案 0 :(得分:3)

def func(my_list, z):

    if z == len(my_list):
        return something
    else:
        # do something else
        return func(my_list, z+1)

z = someValue
print func(my_list, z)    

您不应将list用作变量名。

答案 1 :(得分:0)

z = 1

while z <=5:
    if z == 5:
        print 'base case'
    else:
        print 'repeated text'
    z += 1

这被转换为递归代码如下。您可以根据此

处理您的案例
def recursion(z):
    assert z <= 5
    if z == 5:
        print 'base case'
    else:
        print 'repeated text'
        recursion(z+1)

recursion(1)

答案 2 :(得分:0)

我将使用while循环实现递归函数--- Factorial ----
(1)根据while条件递归调用事实函数
(2)您可以根据问题陈述

添加if或nested if
def fact(num):
    while num>1:
        return num*fact(num-1)
    else:
        return num

result = fact(3)
print(result)

6