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

Python去除列表中换行符时报NameError未定义错误求助

问题修复方案

报错原因

  • 变量名大小写拼写错误:Python变量名区分大小写,你声明的列表是全小写的highscores,但列表推导式中使用了大写结尾的highscoreS,系统识别为两个不同变量,因此触发未定义错误。
  • 代码逻辑位置错误:你将去换行符的列表推导式放在了读文件的for循环内部,且推导式的遍历对象写了未定义的highscoreS,同时临时迭代变量和外层列表重名,逻辑完全混乱。

修复代码

不需要重构全部代码,仅需修改读文件、处理换行符的相关逻辑即可,正确写法如下:

写法1:逐行读取时直接处理换行符

highscores = []
with open('Numbergame.txt', 'rt') as f:
    for highscore in f:
        # 去除换行符后再存入列表,不需要额外遍历处理
        highscores.append(highscore.strip('\n'))

写法2:更简洁的列表推导式一次性完成读取+去换行

with open('Numbergame.txt', 'rt') as f:
    highscores = [line.strip('\n') for line in f.readlines()]

额外优化建议

如果后续需要比较分数高低,可以在读取时直接将值转为整数,省得后续再做类型转换:

with open('Numbergame.txt', 'rt') as f:
    highscores = [int(line.strip('\n')) for line in f.readlines()]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:45:01