python 0基础第23.24讲例题1的问题
例题是:写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==>def fun1(n):
result = []
if n:
result.insert(0,n%10)
fun1(n//10)
return result
x = int(input('请输入一个整数:'))
result = fun1(x)
print(result)
为什么这样做的结果输出只有最后一位呢?应该怎么样改?谢谢各位大神了
def fun1(n):
result = []
while n:
result.insert(0,n%10)
n //= 10
return result 梦回连营 发表于 2021-11-25 12:52
请问如果用递归该怎么改? 本帖最后由 jackz007 于 2021-11-25 14:16 编辑
yojhoo 发表于 2021-11-25 13:33
请问如果用递归该怎么改?
d = []
def digits(n):
if n :
digits(n // 10)
d . append(n % 10)
digits(int(input('请输入一个整数 : ')))
print(d)
运行实况:
D:\00.Excise\Python>python x.py
请输入一个整数 : 135798642
D:\00.Excise\Python> jackz007 发表于 2021-11-25 14:14
运行实况:
请教,能告诉我,我写的问题出在哪里吗?
yojhoo 发表于 2021-11-25 14:36
请教,能告诉我,我写的问题出在哪里吗?
你的代码已作修改
def fun1(n):
result = []
if n:
result = fun1(n // 10)
result . append(n % 10)
return result
print(fun1(int(input('请输入一个整数:')))) jackz007 发表于 2021-11-25 14:46
你的代码已作修改
万分感激~
页:
[1]