递归作业的问题
请问为什么def get_digits(n):
result = []
if n == 0:
return result
else:
return get_digits(n//10).append()
print(get_digits(12345))
不行而拼接就可以?
def get_digits(n):
result = []
if n == 0:
return result
else:
return get_digits(n//10)+
print(get_digits(12345))
#拼接就能成功运行
本帖最后由 Twilight6 于 2020-6-25 16:58 编辑
return get_digits(n//10).append()
列表的大多数方法都没有返回值,返回的是None,导致你 get_digits(n//10) 递归过程中会返回 None 而不是返回一个列表
而 None 不能使用列表的 append 的方法,导致报错
而拼接就可以?
get_digits(n//10)+ 这个返回的是一个列表 所以和你上面的那个不同,这个就可以
而且这个不叫拼接吧,我也不清楚具体叫什么,应该叫合并列表吧,拼接是对字符串而言的
Twilight6 发表于 2020-6-25 16:57
列表的大多数方法都没有返回值,返回的是None,导致你 get_digits(n//10) 递归过程中会返回 None ...
感谢您,的确是append方法没有返回值,后面变成NoneType了 DozenPython 发表于 2020-6-25 17:05
感谢您,的确是append方法没有返回值,后面变成NoneType了
列表方法remove、append、extend、clear、insert、reverse、sort等 都没有,而 pop 有 大佬都解决了
页:
[1]