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
。
希望这可以帮助 :)