You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手求助:用if语句处理percent数组生成grade数组出错

问题分析与解决方案

嘿,我一眼就揪出问题所在啦!你代码里的循环变量用错了,这才导致grade数组没法正确存储对应等级。

核心错误点

你写的for i in range(0, len(percent))里的i是数组的索引值(从0到6),而不是percent数组里的实际分数!所以你的条件i >=70 and i <=100永远不会成立——毕竟i最大才6,grade数组自然加不上任何内容啦。

修正后的代码

我给你两种修正方案,第二种更符合Python的简洁风格:

方案1:通过索引访问分数

percent = [33, 44, 55, 66, 77, 88, 99]
grade = []
for i in range(0, len(percent)):
    score = percent[i]  # 取出当前索引对应的实际分数
    if 70 <= score <= 100:
        grade.append("Distinction")  # 替换成你需要的对应字符串
    elif 60 <= score < 70:
        grade.append("First Class")
    elif 50 <= score < 60:
        grade.append("Second Class")
    elif 40 <= score < 50:
        grade.append("Pass")
    else:
        grade.append("Fail")

方案2:直接遍历分数(更推荐)

这种方式不用管索引,直接遍历percent里的每个元素,代码更清晰:

percent = [33, 44, 55, 66, 77, 88, 99]
grade = []
for score in percent:
    if 70 <= score <= 100:
        grade.append("Distinction")
    elif 60 <= score < 70:
        grade.append("First Class")
    elif 50 <= score < 60:
        grade.append("Second Class")
    elif 40 <= score < 50:
        grade.append("Pass")
    else:
        grade.append("Fail")

效果验证

运行修正后的代码,grade数组就会变成:
["Fail", "Pass", "Second Class", "First Class", "Distinction", "Distinction", "Distinction"]
完全符合分数对应的等级啦!

内容的提问来源于stack exchange,提问作者Pancos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:56:54