尽管我已经看到有关 Python 分隔符的其他问题,但我无法找到回答这个问题的问题,所以就到这里了。我正在编写一个函数,它将递归地向后打印一个数组,它似乎工作得很好:
def print_array_backwards(array):
if (len(array) == 1):
print array[0],
return
print_array_backwards(array[1:])
print array[0],
##########################################
x = [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
print 'Array = ', x
print_array_backwards(x)
将输出:
Array = [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
4 3 2 1 0 4 3 2 1 0
问题是当我尝试打印 print_array_backwards 函数的输出与其他文本一致时,如下所示:
print 'Array = ', x
print 'The array backwards is', print_array_backwards(x)
这将输出:
Array = [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
The array backwards is 4 3 2 1 0 4 3 2 1 0 None
我的问题是,这个额外的 None 值是从哪里来的?
如果我将函数输出推送到下一行,但在打印语句中保留逗号,如下所示:
print 'Array = ', x
print 'The array backwards is',
print_array_backwards(x)
我显然得到了想要的输出:
Array = [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
The array backwards is 4 3 2 1 0 4 3 2 1 0
谁能帮我理解为什么将函数留在 print 语句的同一行会导致函数表现不同?
谢谢你的时间!