我非常简单的python函数在它的末尾返回'None',我不确定为什么。我看了一些其他的帖子,仍然无法搞清楚。 任何帮助表示赞赏。
这是我的代码:
def printmult(n):
i = 1
while i <= 10:
print (n * i, end = ' ')
i += 1
print(printmult(30))
答案 0 :(得分:2)
您没有在函数printmult
中返回任何内容,因此当您打印printmult(30)
的结果时,它将是None
(这是默认值当函数没有明确地返回任何内容时返回。)
由于你的方法里面有一个print
语句并且它不应该返回某些内容(通常当方法名称类似于printSomething()
时,它不会返回任何内容),你应该将其称为:
printmult(30)
不
print(printmult(30))
答案 1 :(得分:2)
因为在Python中,每个函数都返回一个值,如果你没有明确指定别的东西,None
就会返回。
您期待 print(printmult(30))
到底做了什么?您已要求它评估printmult(30)
,然后print
评估结果。 东西必须由它产生,对吧?或者你是否可能期待某种例外被提出?
请确保您了解打印和返回不是一回事。
答案 2 :(得分:2)
其他答案在指出错误的位置方面做得很好,即您需要了解打印和返回不一样。如果你希望你的函数返回一个你可以打印或存储在变量中的值,你需要这样的东西:
def returnmult(n):
i = 1
result_string = ''
while i <= 10:
result_string += str(n * i) + ' '
i += 1
return result_string
print(returnmult(30))
答案 3 :(得分:1)
def printmult(n):
i = 1
while i <= 10:
print (n * i, end = ' ')
i += 1
printmult(30)
问题是您正在打印不返回任何内容的函数的返回值,该函数将打印None
答案 4 :(得分:0)
我也来自Ruby,一开始看起来很奇怪。
如果print
内容中包含print
语句,则返回的最后一项是None
。
如果您只是返回值,然后在该函数上调用print
,则不会输出None
。
希望这会有所帮助:)