|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==> [1, 2, 3, 4, 5]
result = []
def get_digits(n):
if n:
get_digits(n//10)
result.append(n%10)
get_digits(12345)
print(result)
数字改成列表这道题我这么写的逻辑上不通啊,结果怎么对呢,麻烦各位大神帮看看!
用 get_digits(123) 举个例子,get_digits(12345) 同理,如下:
get_digits(123) --> n = 123 --> if 123: 符合条件执行 if 代码块 --> get_digits(123//10) --> get_digits(12) 进入第一次递归
get_digits(12) --> n = 12 --> if 12: 符合条件执行 if 代码块 --> get_digits(12//10) --> get_digits(1) 进入第二次递归
get_digits(1) --> n = 1 --> if 1: 符合条件执行 if 代码块 --> get_digits(1//10) --> get_digits(0) 进入第三次递归
get_digits(0) --> n = 0 --> if 0: 不符合条件执行 if 代码块 --> 开始返回 --> get_digits(1) 返回第三次递归
get_digits(1) --> result.append(1%10) --> result = [1] --> get_digits(12) 返回第二次递归
get_digits(12) --> result.append(12%10) --> result = [1, 2] --> get_digits(123) 返回第一次递归
get_digits(123) --> result.append(123%10) --> result = [1, 2, 3]
|
|