函数返回输出“ None”

时间:2018-09-23 13:15:12

标签: python python-3.x

有人可以向我解释为什么在以下代码中我得到“您的答案为无”的消息吗?

question='should save the notebook after edit?(T/F) :'
correct_ans=('t')

def tf_quiz(question,correct_ans):
    if input(question)==correct_ans:
        print('correct')
    else:
        print('incorrect') 

quiz=tf_quiz(question,correct_ans)

print('your answer is',quiz)

输出:

should save the notebook after edit?(T/F) :t
correct
your answer is None

3 个答案:

答案 0 :(得分:2)

您的函数不会显式返回任何内容,因此会隐式返回None。无需在函数内部打印,只需返回所需的值即可:

def tf_quiz(question,correct_ans):
    if input(question) == correct_ans:
        return 'correct' # Here
    else:
        return 'incorrect' # And here

答案 1 :(得分:1)

因为tf_quiz函数不返回值,所以只打印它。使用return 'correct',依此类推。

答案 2 :(得分:1)

您的函数“ tf_quiz”不返回任何输出。默认情况下,除非指定返回其他内容,否则python返回None作为函数的返回值。 因此,这就是纠正代码的方法。

question='should save the notebook after edit?(T/F) :'
correct_ans='t'

def tf_quiz(question,correct_ans):
    usr_answer = input(question) 
    if usr_answer==correct_ans:
        print('correct')
    else:
        print('incorrect') 
    return usr_answer

quiz=tf_quiz(question,correct_ans)

print('your answer is',quiz)