是什么原因导致我的函数最后返回 None ?[重复]
- 2024-12-13 08:36:00
- admin 原创
- 137
问题描述:
我的非常简单的 Python 函数None
在结束时返回,但我不太清楚为什么。我查看了一些其他帖子,但仍然无法弄清楚。
这是我的代码:
def printmult(n):
i = 1
while i <= 10:
print (n * i, end = ' ')
i += 1
print(printmult(30))
解决方案 1:
因为在 Python 中,每个函数都会返回一个值,None
如果您没有明确指定其他内容,那么它就会返回该值。
您到底期望 print(printmult(30))
做什么?您要求它评估printmult(30)
,然后print
计算结果。它必须产生一些结果,对吧?或者您可能期望引发某种异常?
请确保您了解打印和返回不是一回事。
解决方案 2:
您没有在函数中返回任何内容printmult
,因此当您打印它的结果printmult(30)
时将是None
(这是当函数没有明确返回任何内容时返回的默认值)。
由于您的方法print
内部有一个语句,并且它不应该返回任何内容(通常当方法名称类似于时printSomething()
,它不会返回任何内容),您应该这样调用它:
printmult(30)
不是
print(printmult(30))
解决方案 3:
其他答案已经很好地指出了错误所在,即您需要了解打印和返回是不一样的。如果您希望函数返回一个值,然后可以将其打印或存储在变量中,则需要类似以下内容:
def returnmult(n):
i = 1
result_string = ''
while i <= 10:
result_string += str(n * i) + ' '
i += 1
return result_string
print(returnmult(30))
解决方案 4:
def printmult(n):
i = 1
while i <= 10:
print (n * i, end = ' ')
i += 1
printmult(30)
问题是你正在打印一个不返回任何内容的函数的返回值,它将打印None
解决方案 5:
我也来自 Ruby,一开始它看起来很奇怪。
如果print
某物包含语句print
,它最后返回的是None
。
如果您只是返回值然后调用print
函数,它将不会输出None
。
希望这有帮助:)
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD