我需要一些澄清。当我使用return
使用函数执行下面的代码时,我得到的行为与使用print
使用函数时不同。我得到了相同的输出,但它打印了一个单词"none",而这个单词不在程序中。
import random
# **With Return**
def getAnswer(answerNumber):
if answerNumber == 1:
return 'It is certain'
elif answerNumber == 2:
return 'It is decidedly so'
elif answerNumber == 3:
return 'Yes'
# **With Print**
def getAnswer2(answerNumber):
if answerNumber == 1:
print('It is certain')
elif answerNumber == 2:
print('It is decidedly so')
elif answerNumber == 3:
print('Yes')
r = random.randint(1, 3)
fortune = getAnswer(r)
print(fortune)
fortune = getAnswer2(r)
print(fortune)
输出例如
Yes
Yes
None
问题是与print语句一起使用的函数没有返回值。然而,您正在用print(fortune)
行打印该函数的返回值。那么,如果那里什么也没有,它应该输出什么呢?它打印的是None
每个Python函数都隐式返回None
,除非您显式返回其他值。
在第一部分中,您显式地返回字符串,并打印该值。
在第二部分中,打印消息,然后打印返回值(None
,隐式)。