Python 3.x 不打印计数或平均值,不考虑缩进

Python 3.x 不打印计数或平均值,不考虑缩进,python-3.x,Python 3.x,我必须制作一个程序,允许用户输入分数,直到他们输入一个负数,然后用平均数输出及格分数和不及格分数。我们不允许使用list函数 maxgrade = 100 mingrade = 0 passing = 0 failing = 0 while True: try: grade = int(input("Enter a grade: ")) if 100 >= grade > 60: passing += 1

我必须制作一个程序,允许用户输入分数,直到他们输入一个负数,然后用平均数输出及格分数和不及格分数。我们不允许使用list函数

maxgrade = 100
mingrade = 0
passing = 0
failing = 0


while True:
    try:
        grade = int(input("Enter a grade: "))

        if 100 >= grade > 60:
            passing += 1
        elif grade <= 60:
            failing += 1
        if grade < 0:
            print("Invalid")


        if grade < mingrade:
            mingrade = grade
        if grade > maxgrade:
            maxgrade = grade

        total == grade
        count = passing + failing
        avg = total/count

        print("Average: ", avg)
        print("# Passing: ", passing)
        print("# Failing: ", failing)

    except:
             print("Invalid")
             break
maxgrade=100
mingrade=0
通过=0
失败=0
尽管如此:
尝试:
等级=整数(输入(“输入等级:”)
如果100>=等级>60:
通过+=1
elif等级最大等级:
最大坡度=坡度
总数==年级
计数=通过+失败
平均值=总数/计数
打印(“平均:”,平均值)
打印(#通过:,通过)
打印(#失败:,失败)
除:
打印(“无效”)
打破

首先,正如我在评论中提到的,您使用的
try
except
是不正确的
Try
except
可同时使用,以防止出现错误。然而,在你的情况下,我怀疑
尝试
是否需要
。有关解决方法,请参见下面的代码

您还需要考虑逻辑和代码执行顺序。以下带注释的代码将按指定方式工作

# Assume the lowest and highest possible for max and min grades, respectively
max_grade = 0
min_grade = 100
grade_sum = 0
passing_count = 0
failing_count = 0

# Loop sentinel
running = 1

# Main loop
while running:

    # Input validation sentinel
    invalid_input = 1

    # Input validation loop
    while invalid_input:
        grade = input("Enter a grade: ")
        if grade.isnumeric():
            grade = int(grade)
            invalid_input = 0
        else:
            print("Please enter a number!")

    # Increment number of passing or failing grades
    if 100 >= grade > 60:
        passing_count += 1
    elif 60 >= grade >= 0:
        failing_count += 1
    else:
        running = 0

    # Update grade_sum
    grade_sum += grade        

    # Update min_grade and max_grade
    if grade < min_grade:
        min_grade = grade
    if grade > max_grade:
        max_grade = grade

# Calculate grade average
grade_avg = grade_sum / (passing_count + failing_count)

# Print results
print("Average: ", grade_avg)
print("# Passing: ", passing_count)
print("# Failing: ", failing_count)
#分别假设最大和最小坡度的最低和最高值
最高等级=0
最低等级=100
等级总和=0
正在通过\u计数=0
失败\u计数=0
#环形哨兵
运行=1
#主回路
运行时:
#输入验证哨兵
无效的_输入=1
#输入验证循环
当输入无效时:
等级=输入(“输入等级:”)
如果grade.isnumeric():
年级=int(年级)
无效的\u输入=0
其他:
打印(“请输入一个数字!”)
#及格或不及格分数的增量
如果100>=等级>60:
通过_计数+=1
elif 60>=等级>=0:
失败\u计数+=1
其他:
运行=0
#更新等级和
等级\总和+=等级
#更新最小坡度和最大坡度
如果等级<最低等级:
最小坡度=坡度
如果坡度>最大坡度:
最大坡度=坡度
#计算平均成绩
平均等级=等级总和/(通过计数+失败计数)
#打印结果
打印(“平均:”,平均等级)
打印(“通过:,通过计数)
打印(#失败:,计数失败)

@NicholasBrady等级验证的
else
子句中的循环被中断。(
running=0