python返回值无

时间:2016-09-30 16:32:04

标签: python python-2.7

我需要澄清一下。当我使用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

2 个答案:

答案 0 :(得分:0)

问题是您使用print语句的函数没有返回值。但是,您使用行print(fortune)打印该函数的返回值。那么如果那里什么都没有,它应该打印什么呢?好吧,它会打印None

答案 1 :(得分:0)

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

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

在第二部分中,您将打印邮件,然后隐式打印返回值(None。)