Python 程序 - 使用 while 循环计算用户输入的字母等级数量



我为以下问题编写了一些代码:

"编写一个程序,不断询问用户考试分数,以 0 到 100 范围内的整数百分比给出。按如下方式计算每个字母等级类别中的成绩总数:90 到 100 是 A,80 到 89 是 B,70 到 79 是 C,60 到 69 是 D,0 到 59 是 F。 使用负分数作为哨点值来指示输入的结束。(负值仅用于结束循环,因此不要在计算中使用它。

这是我的代码:

count = 0
gradeA = 0
gradeB = 0
gradeC = 0
gradeD = 0
gradeF = 0
score = int(input("Enter an exam score: "))
while score != -1:
count = count + 1
score = int(input("Enter an exam score: "))
if score >= 90 and score <= 100:
gradeA = gradeA + 1
elif score >= 80 and score <= 89:
gradeB = gradeB + 1
elif score >= 70 and score <= 79:
gradeC = gradeC + 1
elif score >= 60 and score <= 69:
gradeD = gradeD + 1
elif score >= 0 and score <= 59:
gradeF = gradeF + 1
print ("You entered " + str(count) + " exam scores.")
print ("Number of A's = " + str(gradeA))
print ("Number of B's = " + str(gradeB))
print ("Number of C's = " + str(gradeC))
print ("Number of D's = " + str(gradeD))
print ("Number of F's = " + str(gradeF))

问题是,当我运行代码时,每个字母等级类别中的成绩数量都显示为 0。 我该如何解决此问题以显示正确的数字?

你忘了缩进你的if语句。

count = 0
gradeA = 0
gradeB = 0
gradeC = 0
gradeD = 0
gradeF = 0
score = int(input("Enter an exam score: "))
while score != -1:
count = count + 1
score = int(input("Enter an exam score: "))
if score >= 90 and score <= 100:
gradeA = gradeA + 1
elif score >= 80 and score <= 89:
gradeB = gradeB + 1
elif score >= 70 and score <= 79:
gradeC = gradeC + 1
elif score >= 60 and score <= 69:
gradeD = gradeD + 1
elif score >= 0 and score <= 59:
gradeF = gradeF + 1
print ("You entered " + str(count) + " exam scores.")
print ("Number of A's = " + str(gradeA))
print ("Number of B's = " + str(gradeB))
print ("Number of C's = " + str(gradeC))
print ("Number of D's = " + str(gradeD))
print ("Number of F's = " + str(gradeF))

看起来 if/elif 语句不包含在 while 循环中,因此变量实际上并没有更新。尝试缩进该块,使其在循环内,看看是否有效!

最新更新