You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何修复Python代码以输出100名学生的成绩及对应等级(而非仅第100名学生的)

如何修复Python代码以输出100名学生的成绩及对应等级(而非仅第100名学生的)

嘿,我一眼就瞅出问题在哪啦~你的代码现在只输出最后一个学生的等级,是因为等级判断和带等级的打印代码都在for循环外面!循环跑完100次后,只有最后一次的scorei值被保留下来,所以只处理了第100个学生。

来给你一步步修复:

1. 先补上缺失的模块导入

你用了random.randint但没导入random模块,运行会直接报错,所以第一行必须加上import random

2. 把等级判断和打印逻辑移到循环内部

把整个if-elif-else的等级判断块,还有最终打印带等级信息的语句,缩进到for循环里面,这样每处理一个学生(每循环一次),就会立刻计算他的等级并打印完整信息。

修复后的完整代码

import random

for i in range(1, 101):
    score = random.randint(1, 100)
    # 计算当前学生的成绩等级
    if score >= 80:
        grade = "A"
    elif score >= 60:
        grade = "B"   
    elif score >= 50: 
        grade = "C"
    elif score >= 30:
        grade = "D"
    else:
        grade = "E"
    # 打印该学生的完整成绩与等级信息
    print(f"Student {i}: {score} {grade}")

为啥这样改就行?

原来的循环里只做了“生成分数+打印分数”的操作,等级判断在循环外相当于白等了100次,最后只拿了第100个学生的分数去算等级。现在把逻辑移到循环内,每个学生的分数生成后,马上算等级、马上打印,100个学生的信息就能依次输出啦~

如果你想先单独打印分数再打印带等级的信息,也可以把原来的print(f"Student {i}: {score}")留在循环里和后面的打印并排,不过一般合并成一行更清晰哦😉

火山引擎 最新活动