方法不返回True

时间:2016-12-08 01:58:54

标签: python methods

我试图从isCorrect方法返回True到correctMessage方法。但是由于isCorrect输出,correctMessage无法正常运行 “函数在0x000000处正确”

def correctMessage(isCorrect, tryAnswer, questionAnswer):
    if isCorrect is True:
        return print("Yes! You answered \"", 
                     str(tryAnswer), "\" and the answer was " + questionAnswer)

def isCorrect(tryAnswer, questionAnswer):
    if str(tryAnswer).lower() == questionAnswer:
        return True
    return False

我能做些什么才能正确评估?

3 个答案:

答案 0 :(得分:1)

您没有致电 isCorrect,您测试了该功能本身是否为True。添加parens并传递isCorrect所需的两个参数。

附注:在if中,您不需要isCorrect两次返回。 return str(tryAnswer).lower() == questionAnswer会更快完成同样的事情。

同样,测试if x is True:是丑陋的,而且几乎总是错误的,只需测试if x:,除非值True 真的非常重要而且与其他所有真相不同值(在这种情况下,它是唯一真正的可能性,所以它更快,更像Pythonic来做if isCorrect(...):)。

答案 1 :(得分:1)

您需要使用要传递给它的参数调用isCorrect。 您当前正在检查物理函数isCorrect是否等于True - 它不是。

答案 2 :(得分:-1)

def correctMessage(isCorrect, tryAnswer, questionAnswer):
    if isCorrect(tryAnswer, quenstionAnswer):
        print("Yes! You answered \"", str(tryAnswer), "\" and the answer was " + questionAnswer)

def isCorrect(tryAnswer, questionAnswer):
    return str(tryAnswer).lower() == questionAnswer: