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

2024-09-29 03:33:55 发布

您现在位置:Python中文网/ 问答频道 /正文

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

“编写一个程序,连续向用户询问考试分数,分数以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。 如何解决此问题以显示正确的数字?


Tags: andof代码numbercountscoreprintexam
2条回答

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

您忘记缩进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))

相关问题 更多 >