24课习题,递归的详细流程 ,没有返回值呀
本帖最后由 huyanmin 于 2020-12-20 16:02 编辑#写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==>
result = []
def get_digits(n):#此函数没有返回值呀?
if n > 0:
result.insert(0, n%10)#result为局部变量不能修改result=[]的值吧?
get_digits(n//10)
get_digits(1234
print(result)#不能调用局部变量result?
本帖最后由 昨非 于 2020-12-20 16:12 编辑
result在函数外定义,是全局的啊
每层递归都在修改(insert)同一个全局列表
所以不用加返回值 result = []
def get_digits(n):
if n > 0:
result.insert(0, n%10)#调用列表insert方法,在列表前插入参数的最后一位,依次插入4,3,2,1
get_digits(n//10)#递归操作前三位
get_digits(1234)
print(result)
页:
[1]