|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
求助
第023、024讲:递归中的课后测试题如下,我编写的程序中有一点问题,希望大神能帮忙看一下,问题到底出在哪里了,谢谢
题目:写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==> [1, 2, 3, 4, 5]
我的代码:
def get_digits(x):
empty =[]
if x // 10 < 1:
empty.append(x)
else:
empty.insert(0,x % 10)
empty.insert(0,get_digits(int(x / 10)))
return empty
x = int(input('请输入数x:'))
result = get_digits(x)
print(result)
运行得到的结果如图所示,每次向空列表中插入的应该是元素,但是我得到的结果是插入了一个个列表,我不太知道问题出在哪里了
else 中的第二句,insert插入的是get_digits的返回值,而函数的返回值就是列表,所以就出问题了。
应该用extend,将一个列表的所有元素追加到列表后面
手机编辑,代码可能会有缩进问题。
- def get_digits(x):
- empty =[]
- if x // 10 < 1:
- empty.append(x)
- else:
- empty.extend(get_digits(int(x / 10)))
- empty.append(x % 10)
- return empty
复制代码
|
|