Python函数返回无

我非常简单的python函数在它的结尾处返回'None',我不知道为什么。 我看了一些其他的post,仍然无法弄清楚。 任何帮助表示赞赏。

这是我的代码:

def printmult(n): i = 1 while i <= 10: print (n * i, end = ' ') i += 1 print(printmult(30)) 

你不会返回printmult函数中的任何东西,因此当你打印printmult(30)结果时 ,它将是None (当函数不显式返回任何东西时返回的默认值)。

由于你的方法里面有一个print语句,它不应该返回一些东西(通常当方法名称是printSomething()这样的东西时,它不会返回任何东西),你应该把它命名为:

 printmult(30) 

 print(printmult(30)) 

因为在Python中,每个函数都会返回一个值,如果没有明确地指定其他值,则返回None

期望 print(printmult(30))做什么? 你已经要求它评估printmult(30) ,然后print任何结果。 有什么必须由它产生的,对吧? 还是你可能期望某种exception被提出?

请确定你明白打印和返回不是一回事

其他答案已经做了很好的指出错误的地方,即你需要明白打印和返回是不一样的。 如果你想要你的函数返回一个值,然后你可以打印或存储在一个variables中,你需要这样的东西:

 def returnmult(n): i = 1 result_string = '' while i <= 10: result_string += str(n * i) + ' ' i += 1 return result_string print(returnmult(30)) 

我也是从Ruby来的,起初看起来很奇怪。

如果您print中包含print语句,则返回的最后一个内容是None

如果你刚刚返回值,然后在函数上调用print ,它将不会输出None

希望这可以帮助 :)