为什么我的代码会出现类型错误?
Why am I getting a Type Error on my code?
我收到错误 TypeError: '<' not supported between instances of 'function' and 'int' 当我的代码在我的代码中达到 'if(entered_score < 60):' 时。我已经研究过这个话题,但我看到的所有例子和解释都很难适用于我的情况。我是使用 Python 的新手,所以如果有什么我忽略了,或者我对这件事完全一无所知,我并不感到惊讶。如果有人能指出给我,我将不胜感激。
def calc_average(score_1, score_2, score_3, score_4, score_5):
average = (score_1 + score_2 + score_3 + score_4 + score_5) / 5
return average
def determine_grade_letter(entered_score):
if(entered_score < 60):
return "F"
elif(entered_score < 70):
return "D"
elif(entered_score < 80):
return "C"
elif(entered_score < 90):
return "B"
elif(entered_score < 101):
return "A"
def enter_scores():
score_1 = float(input("test score #1: "));
score_2 = float(input("test score #2: "));
score_3 = float(input("test score #3: "));
score_4 = float(input("test score #4: "));
score_5 = float(input("test score #5: "));
return score_1, score_2, score_3, score_4, score_5
def results(score_1, score_2, score_3, score_4, score_5):
print("test score #1: " + str(score_1) + "\n\n" + "grade letter: " +
determine_grade_letter(score_1), \
"test score #2: " + str(score_2) + "\n\n" + "grade letter: " +
determine_grade_letter(score_2), \
"test score #3: " + str(score_3) + "\n\n" + "grade letter: " +
determine_grade_letter(score_3), \
"test score #4: " + str(score_4) + "\n\n" + "grade letter: " +
determine_grade_letter(score_4), \
"test score #5: " + str(score_5) + "\n\n" + "grade letter: " +
determine_grade_letter(score_5), \
"average score: " + str(calc_average(score_1, score_2, score_3, score_4, score_5)) +
"\n" \
+ "grade leter: " + determine_grade_letter(calc_average))
def main():
score_1, score_2, score_3, score_4, score_5 = enter_scores()
results(score_1, score_2, score_3, score_4, score_5)
main()
首先:
enter_scores 方法中的 return 位置不正确(需要制表符)
第二个:
在您的条件下,您将 return 多个变量的函数与一个整数
进行比较
您必须将其中一个数字与一个整数进行比较
这可以帮助:
Returning Multiple Values in Python
您在比较时使用的是函数。您应该使用带参数的函数。
determine_grade_letter(score_5), \
"average score: " + str(calc_average(score_1, score_2, score_3, score_4, score_5)) +
"\n" \
+ "grade leter: " + determine_grade_letter(calc_average(score_1, score_2, score_3, score_4, score_5)))
我收到错误 TypeError: '<' not supported between instances of 'function' and 'int' 当我的代码在我的代码中达到 'if(entered_score < 60):' 时。我已经研究过这个话题,但我看到的所有例子和解释都很难适用于我的情况。我是使用 Python 的新手,所以如果有什么我忽略了,或者我对这件事完全一无所知,我并不感到惊讶。如果有人能指出给我,我将不胜感激。
def calc_average(score_1, score_2, score_3, score_4, score_5):
average = (score_1 + score_2 + score_3 + score_4 + score_5) / 5
return average
def determine_grade_letter(entered_score):
if(entered_score < 60):
return "F"
elif(entered_score < 70):
return "D"
elif(entered_score < 80):
return "C"
elif(entered_score < 90):
return "B"
elif(entered_score < 101):
return "A"
def enter_scores():
score_1 = float(input("test score #1: "));
score_2 = float(input("test score #2: "));
score_3 = float(input("test score #3: "));
score_4 = float(input("test score #4: "));
score_5 = float(input("test score #5: "));
return score_1, score_2, score_3, score_4, score_5
def results(score_1, score_2, score_3, score_4, score_5):
print("test score #1: " + str(score_1) + "\n\n" + "grade letter: " +
determine_grade_letter(score_1), \
"test score #2: " + str(score_2) + "\n\n" + "grade letter: " +
determine_grade_letter(score_2), \
"test score #3: " + str(score_3) + "\n\n" + "grade letter: " +
determine_grade_letter(score_3), \
"test score #4: " + str(score_4) + "\n\n" + "grade letter: " +
determine_grade_letter(score_4), \
"test score #5: " + str(score_5) + "\n\n" + "grade letter: " +
determine_grade_letter(score_5), \
"average score: " + str(calc_average(score_1, score_2, score_3, score_4, score_5)) +
"\n" \
+ "grade leter: " + determine_grade_letter(calc_average))
def main():
score_1, score_2, score_3, score_4, score_5 = enter_scores()
results(score_1, score_2, score_3, score_4, score_5)
main()
首先: enter_scores 方法中的 return 位置不正确(需要制表符)
第二个:
在您的条件下,您将 return 多个变量的函数与一个整数
进行比较您必须将其中一个数字与一个整数进行比较 这可以帮助: Returning Multiple Values in Python
您在比较时使用的是函数。您应该使用带参数的函数。
determine_grade_letter(score_5), \
"average score: " + str(calc_average(score_1, score_2, score_3, score_4, score_5)) +
"\n" \
+ "grade leter: " + determine_grade_letter(calc_average(score_1, score_2, score_3, score_4, score_5)))