我无法获得字母等级输出除了F之外的任何输入值的任何值。任何人都可以找出问题所在。可能是我的if语句中的内容不正确但我不确定这是否属实。
score1=float(input("Enter score 1: "))
score2=float(input("Enter score 2: "))
score3=float(input("Enter score 3: "))
score4=float(input("Enter score 4: "))
score5=float(input("Enter score 5: "))
scores=[score1, score2, score3, score4, score5]
def determine_grade(scores):
if score >=90:
return 'A'
elif score >=80:
return 'B'
elif score >=70:
return "C"
elif score >=60:
return "D"
elif score <60:
return "F"
determine_grade(scores)
print("scores \t numeric grade \t letter grade")
print("-------------------------------------------------------------")
print("Score 1: ","\t", score1,"\t", determine_grade(score1))
print("Score 2: ","\t", score2,"\t", determine_grade(score2))
print("Score 3: ","\t", score3,"\t", determine_grade(score3))
print("Score 4: ","\t", score4,"\t", determine_grade(score4))
print("Score 5: ","\t", score5,"\t", determine_grade(score5))
print("-------------------------------------------------------------")
calc_average= sum(scores)/len(scores)
print("Average Score: {0:.2f}".format(calc_average))
答案 0 :(得分:1)
首先,函数determine_grade()
期待float
参数;但是你传递了一个浮动列表scores
。
其次,在函数determine_grade()
中,参数scores
和score
之间存在不匹配。
此外,代码可以更清晰的方式编写:
num_scores = 5
scores = []
for i in range(num_scores):
score = float(input("Enter score {}: ".format(i)))
scores.append(score)
def determine_grade(scores):
if score >= 90:
return 'A'
elif score >= 80:
return 'B'
elif score >= 70:
return "C"
elif score >= 60:
return "D"
elif score < 60:
return "F"
print("scores\tnumeric grade\tletter grade")
print('-' * 40)
for i in range(num_scores):
print("Score {}:\t{}\t{}".format(i, scores[i], determine_grade(scores[i])))
print('-' * 40)
calc_average = sum(scores) / len(scores)
print("Average Score: {0:.2f}".format(calc_average))
答案 1 :(得分:0)
你应该说明问题是什么以及输出是什么样的。话虽如此,从快速浏览一下,我认为这是你的问题。
def determine_grade(scores):
if score >=90:
return 'A'
elif score >=80:
在您的determine_grade功能中,您正在通过&#39;分数&#39;但在其中你正在检查变量&#39;得分&#39;这会引发一个未定义的&#34;错误。
你也不需要这条线。您并未真正使用返回值。
determine_grade(scores)
答案 2 :(得分:0)
除了hikerjobs指出的问题,行
determine_grade(scores)
不会按照您的意愿执行操作,因为在该范围内,scores
是一个列表,因为该行:
scores=[score1,score2,score3,score4,score5]
但是你的determine_grade
函数需要浮点数。
(在这方面,我建议您养成为代码编写文档字符串的习惯。这将有助于捕获大量简单错误。)
答案 3 :(得分:0)
怎么样?
成绩= {60:'D',70:'C',80:'B',90:'A',100:'A'}
myscore = 72
print(grades.get(int(myscore / 10)* 10,'F'))