http://www.8iiii.com

http://www.8iiii.com

科技blog
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码中没有明显的语法错误,但有一些需要注意的地方: 1. 文件路径中的反斜杠需要进行转义,可以使用 `\\` 或 `/` 代替。 2. 在读取文件时,可以使用 `with open() as ...` 的方式,可以避免忘记关闭文件。 3. 在输入时,建议使用 `input()` 函数代替 `eval(input())` 函数,因为前者是安全的,而后者会直接执行用户输入的内容,存在一定的安全风险。 4. 在计算成绩优秀和不及格人数时,可以直接在循环中使用条件判断,而不需要事先创建 `g` 字典。 下面是修改后的代码: ```python # 李济同 202230300305 轻工二班 # 打开文件并读取数据 with open("C:/Users/ljt/Desktop/期末/python/成绩单.csv", "r", encoding="UTF-8") as f: b = [i.strip().split(",") for i in f.readlines()] b.sort(key=lambda x: int(x[-1])) # 输出最高和最低总分 print(f"最高的总分为{b[-1][-1]}分,最低的为{b[0][-1]}分。") # 根据输入的正整数选择排名较前或较后的同学输出 c = int(input("请输入一个正整数:")) d = [b[i][1] for i in range(c)] if c <= 37 else [b[i][1] for i in range(37)] e = [b[36-i][1] for i in range(c)] if c <= 37 else [b[36-i][1] for i in range(37)] print(f"排名前{c}的同学是:{e}。") print(f"排名后{c}的同学是:{d}。") # 计算每道题的平均分 average = [sum([int(b[j][3+i]) for j in range(37)]) / 37 for i in range(6)] print(f"每道题的平均分成绩为:{average}。") # 统计成绩优秀和不及格的同学人数 excellent = len([i for i in b if int(i[-1]) >= 27]) failed = len([i for i in b if int(i[-1]) < 18]) print(f"成绩优秀的同学共:{excellent}人,成绩不及格的同学共:{failed}人。") ``` 希望这些修改对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值