我用python编写了一个函数,它可以打印0到100之间的7的倍数。输出还可以,但是在输出的末尾得到了None
。我该如何摆脱它,是什么触发了它?
def multiples(x):
for n in range(100):
n = n*x
if n <= 100:
print(n)
print(multiples(7))
将print(multiples(7))
更改为multiples(7)
。
您也在打印函数的返回值。
下面是一个教程,对其进行了更多的解释:https://www.w3schools.com/python/gloss_python_function_return_value.asp
由于函数不包含return
语句,因此函数将返回None
。
您需要显式地向函数返回一些内容,如下所示:
def multiples(x):
result = []
for n in range(100):
n = n*x
if n <= 100:
print(n)
result.append(n)
else:
pass
return n
print(multiples(10))
函数总是返回一些东西,当省略return
时,Python会在后台隐式返回None
。
我建议你看看Python返回语句:用法和最佳实践
在这种情况下,在最后一行中,print是一个外部函数;倍数";是印刷品所包裹的内部功能。
首先是你的功能";倍数";正在接到电话。函数中有一条打印指令。所以它正在打印所有内容。然而,在函数的末尾,您并没有显式地返回任何内容。隐式返回为None。因此,当您的函数完成时,它将返回隐式";无";到外部打印功能。这就是为什么最后附加的"无"。
您可以使用@codewelldev的建议(通过删除包装multiplex函数的print(来修复此问题。