|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==> [1, 2, 3, 4, 5]
各位大佬,代码如下,感谢各位大佬解答!
list1=[]
def get_digits(n):
if n<0:
print("请重新输入大于等零的整数!")
elif n<10:
list1.append(n)
return n
else:
list1.append(n%10)
return get_digits(n//10)
list1.reverse() #第一个问题:为什么list1中元素没有翻转
#第二个问题:如果加上 return list1
while 1: while 1:
number=int(input('输入数值:')) number=int(input('输入数值:'))
result=get_digits(number) result=get_digits(number)
print(list1)
list1.clear() 为何返回值是1
输出结果:
输入数值:123456
[6, 5, 4, 3, 2, 1]
因为执行不到 list1.reverse() 你前面的条件语句都有设置 return ,当代码运行到return 后就不在执行 该函数的代码了
#第二个问题:如果加上 return list1 为什么返回值是 1
因为你没有递归 只加入了第一次 list1.append(n%10) 的值进入列表 导致你只返回一个值
|
|