python返回值无

问题描述:

我需要一些说明。当我使用return函数执行下面的代码时,从使用print使用函数时得到不同的行为。我得到相同的输出,但它打印出一个不包含在程序中的单词“none”。python返回值无

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(fortune)行打印该函数的返回值。那么如果没有什么东西,它应该打印什么?那么,它打印None

+0

谢谢兄弟.. –

每个Python函数都会隐式返回None,除非您明确地返回其他内容。

在您的第一部分中,您显式返回字符串并打印该值。

在第二部分中,您正在打印该消息,然后打印返回值(隐式地为None)。

+0

谢谢兄弟.. –