正在使用我的代码获取以下错误
类型错误:'>;='“dict”和“int”实例之间不支持
知道为什么吗?尝试运行一个循环,查看每个学生的加权平均分数,然后给他们分配一个字母a-F。。。由于某种原因,循环在尝试拉取字母等级时拒绝工作
使用python 3.7.6
steve = {"Name": "Steve",
"Homework": [90, 97, 75, 92],
"Quizzes": [88, 40, 94],
"Tests": [75, 90]}
alice = {"Name": "Alice",
"Homework": [100, 92, 98, 100],
"Quizzes": [88, 40, 94],
"Tests": [75, 90]}
tyler = {"Name": "Tyler",
"Homework": [0, 87, 75, 22],
"Quizzes": [0, 75, 78],
"Tests": [100, 100]}
print(steve)
print(alice)
print(tyler)
students = []
students = [steve, alice, tyler]
for i in students:
print(f"Name: {i['Name']}\nHomework: {i['Homework']}\nQuizzes: {i['Quizzes']}\nTests: {i['Tests']}")
numbers = []
def average(numbers):
return sum(numbers) / len(numbers)
def get_weighted_average(student):
homework_average = average(student["Homework"])
quiz_average = average(student["Quizzes"])
test_average = average(student["Tests"])
weighted_score = homework_average*.1 + quiz_average*.3 + test_average*.6
return weighted_score
print(f"Steve's: {get_weighted_average(steve)}")
print(f"Tyler's: {get_weighted_average(tyler)}")
print(f"Alice's: {get_weighted_average(alice)}")
def get_letter_grade(score):
if score >= 90:
return 'A'
elif score >= (80):
return 'B'
elif score >= (70):
return 'C'
elif score >= (60):
return 'D'
else:
return 'F'
print(get_letter_grade(50))
print(get_letter_grade(100))
print(get_letter_grade(72.5))
for i in students:
print(f"Name: {i['Name']}'s weighted score is {get_weighted_average(i)}")
print(f"Name: {i['Name']}'s letter grade is: {get_letter_grade(i)}")
此错误是由最后两行引起的,其中
i
是一个字典,并被用作get_letter_grade
函数的参数,该函数应接受整数作为参数你是说
get_letter_grade(get_weighted_average(i))
吗将来,最好检查functinos中参数的数据类型,以便更容易查看错误发生的位置
在结尾处,您需要
get_letter_grade(get_weighted_average(i))
而不是get_letter_grade(i)
相关问题 更多 >
编程相关推荐