嗨:我正在测试这样的递归函数:
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
谢谢。
答案 0 :(得分:3)
当函数完成而没有返回任何内容时,它会隐式返回None
。您的函数没有return
语句,因此print countdown(n-1)
将打印None
。
答案 1 :(得分:2)
您正在打印countdown
返回的内容,但它不会返回任何内容。
答案 2 :(得分:2)
您的递归函数没有return
语句。因为函数总是必须返回一些东西,所以默认是返回None
。
从递归函数调用中删除print
语句,并将其放在单独的行中:
elif n > 1:
countdown(n - 1)
print n
请注意,else: pass
块完全是多余的。您可以省略该部分,但