【发布时间】:2015-08-03 19:18:10
【问题描述】:
嗨:我正在测试这样的递归函数:
def countdown(n):
if n == 1:
print 1
elif n > 1:
print countdown(n - 1), '\n', n
else:
pass
函数是从$n$倒数到$1$。但为什么我在输出中得到“无”?
In [2]: countdown(4)
1
None
2
None
3
None
4
谢谢。
【问题讨论】:
-
为了解决这个谜题,在你怀疑会产生意外输出的地方之前和之后添加一些输出。这样,圈出导致意外输出的实际代码。使用该技术,很容易发现第二个
print输出两行,其中第一行是repr(None)。由于第一行中唯一的内容是countdown(n - 1),因此很明显打印该函数的输出会打印“无”。
标签: python