我试图从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
我能做些什么才能正确评估?
答案 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: