【发布时间】:2016-04-26 07:39:40
【问题描述】:
我正在尝试理解这段代码
def listSum(ls):
if not ls:
return 0
return ls[0] + listSum(ls[1:])
有两件事让我有点烦恼
-
if not ls:- 这是什么意思?由于没有指定任何内容,它在寻找什么? -
ls[0] + listSum(ls[1:])- 我试过只使用listSum(ls[0:]),但出现运行错误。为什么?我为什么要坚持ls[0] + listSum(ls[1:])?
【问题讨论】:
-
1.参见docs.python.org/3/library/stdtypes.html#truth-value-testing,它是“如果
ls为空”的成语。 2. 如果你将整个列表(ls[0:]或只是ls[:])传递给递归调用,它怎么会变成空的? -
谢谢@jonrsharpe。我应该结束我的问题吗?
-
空容器是
False。 -
@jonrsharpe 感谢语法修正和删除
hard time;)
标签: python