Python函数返回None
我的非常简单的python函数在结尾处返回'None',我不太清楚原因。我看了一些其他的帖子,仍然不明白。 感谢您的帮助 这是我的密码:Python函数返回None,python,function,Python,Function,我的非常简单的python函数在结尾处返回'None',我不太清楚原因。我看了一些其他的帖子,仍然不明白。 感谢您的帮助 这是我的密码: def printmult(n): i = 1 while i <= 10: print (n * i, end = ' ') i += 1 print(printmult(30)) def printmult(n): i=1 当i在函数printmult中没有返回任何内容时,因此当您打印printmu
def printmult(n):
i = 1
while i <= 10:
print (n * i, end = ' ')
i += 1
print(printmult(30))
def printmult(n):
i=1
当i在函数printmult
中没有返回任何内容时,因此当您打印printmult(30)
的结果时,它将是None
(这是函数没有明确返回任何内容时返回的默认值)
由于您的方法内部有一个print
语句,并且它不应该返回某些内容(通常当方法名称类似于printSomething()
,它不返回任何内容时),您应该将其称为:
printmult(30)
不是
因为在Python中,每个函数都返回一个值,None
是在不显式指定其他内容的情况下返回的值
您希望打印(printmult(30))
做什么?您已经要求它计算printmult(30)
,然后计算print
结果。一定会有结果的,对吧?或者你是不是希望有什么例外
请确保您理解打印和返回不是一回事。其他答案很好地指出了错误所在,即您需要理解打印和返回不是一回事。如果希望函数返回一个值,然后可以打印或存储在变量中,则需要如下内容:
def returnmult(n):
i = 1
result_string = ''
while i <= 10:
result_string += str(n * i) + ' '
i += 1
return result_string
print(returnmult(30))
def returnmult(n):
i=1
结果_字符串=“”
而我我也来自Ruby,一开始看起来很奇怪
如果print
中包含print
语句的内容,则它返回的最后一个内容是None
如果只返回值,然后调用函数上的print
,则不会输出None
希望这有帮助:)def printmult(n):
i=1
让我猜猜,你是一个Ruby程序员,习惯于返回方法中的最后一条语句(不使用return
关键字);)正如BrenBarn所说,您没有返回任何值,因此函数返回None
,要解决代码的问题,您需要将最后一行替换为printmult(30)
。可能是
def returnmult(n):
i = 1
result_string = ''
while i <= 10:
result_string += str(n * i) + ' '
i += 1
return result_string
print(returnmult(30))
def printmult(n):
i = 1
while i <= 10:
print (n * i, end = ' ')
i += 1
printmult(30)