python Return value none



我需要一些澄清。当我使用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,隐式)。

最新更新