我的代码从用户那里获得数字列表(等级),并根据用户给出的数字找到平均值。找到平均值后,我想将平均值转换为基于字母的成绩。例如,如果平均值为90,则返回“ A”,如果平均值为80,则返回“ B”。
问题是我无法使用calculated_average(x)
函数的结果(平均值),而不能在assign_grade()
上使用它。
有什么提示吗?
#Gets a list of numbers from user
def get_score():
score_list = []
keep_going = 'y'
while keep_going == 'y':
score = float(input('Enter a test score: '))
while score < 0:
print('Positive numbers only')
score = float(input('Enter a test score: '))
score_list.append(score)
keep_going = input("More scores (y/n) ")
return score_list
#Calculates the average
def calculated_average(x):
return sum(x) / len(x)
def assign_grade():
def main():
score = get_score()
print(calculated_average(score))
main()
答案 0 :(得分:2)
尝试执行类似以下代码的操作。 assign_grade
功能在这里非常基础,但是您可以根据需要对其进行编辑:
def get_score():
score_list = []
keep_going = 'y'
while keep_going == 'y':
score = float(input('Enter a test score: '))
while score < 0:
print('Positive numbers only')
score = float(input('Enter a test score: '))
score_list.append(score)
keep_going = input("More scores (y/n) ")
return score_list
#Calculates the average
def calculated_average(x):
return sum(x) / len(x)
def assign_grade(x):
if x>80:
return 'A'
else:
return 'B'
def main():
score = get_score()
avg = calculated_average(score)
letter = assign_grade(avg)
return (letter, avg)
final = main()
print(final)
输出(带有输入85):
print(final)
('A', 85.0)
答案 1 :(得分:1)
您的代码似乎可以正常工作,只是您需要完成函数assign_grade(x)
def assign_grade(x):
if x>=90:
return("A")
elif 90>x>=80:
return("B")
else:
return("C")