我需要打印list的元素,这样如果一个元素是100或更大,它后面会有一个换行符,如果不是,后面是空格。在
到目前为止,我得到的是:
def function(list):
if list == []:
return None
elif list[0] >= 100:
print(list[0], function(list[1:]), end = '\n')
else:
print(list[0], function(list[1:]), end = '')
return None
但当我尝试list=[2,3103,8,10]时, Python印花:
10 None8 None103 None
3 None2 None
有什么建议/帮助吗?在
列表是保留字。在
你在正确的轨道上。这就是你想要的:
(我将
list
重命名为lst
,因为list
是我们不想覆盖的内置类型)。在说明:如果我们在
print
调用中有递归调用,我们将打印函数的返回值,它总是None
,因为它从不返回任何其他值。所以我们得把它搬出去。在另外,空列表的布尔值是}。在
False
,因此我们可以按照PEP 8的建议,用lst == []
替换{函数存在后,它返回
None
,这就是print语句中有“None”的原因。只需将递归调用移到print之外相关问题 更多 >
编程相关推荐