|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目:写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==> [1, 2, 3, 4, 5]
①自己写的答案(错误)
def digits(n):
result1=[]
if n>10:
result1=digits(n//10)
return result1.insert(0, n%10)
else:
return [n]
print(digits(12345))
疑问:运行结果报错'AttributeError: 'NoneType' object has no attribute 'insert''为什么会这样?哪里出错了,该怎么改?
②小甲鱼写的答案(正确)
result = []
def get_digits(n):
if n > 0:
result.insert(0, n%10)
get_digits(n//10)
get_digits(12345)
print(result)
疑问:这个递归程序没有设置终止条件,也没有返回值,这能算递归吗?程序为什么不会一直调用下去?
return result1.insert(0, n%10)改为
result1.insert(0, n%10)
return result1
insert没有返回值。
没有设置终止条件---if n > 0: 这不就是吗
|
|