Python3.4.3游戏加载系统读取TXT文件异常问题求助
问题修复方案
核心问题
- 缩进混乱:Python对缩进要求严格,你代码里的缩进错误会导致部分逻辑根本不执行,甚至触发语法错误。
- 冗余代码报错:第一行
if line:username, ...里的line未定义,这行完全多余,会直接中断程序。 - 全局变量声明位置错误:
global username和global password放在条件块里无效,必须放在函数开头才能正确声明全局变量。 - 变量作用域风险:如果文件读取逻辑未执行(比如路径错误),
dmgs等变量不会被定义,后续引用必然报错。
修复后的代码
def load_user_data(): # 提前声明要操作的全局变量 global username, password, points, dmgs, chugs, shields # 拼接文件路径(确保username已提前赋值) file_path = f"Login {username}.txt" try: with open(file_path, "r") as f: for line in f: line = line.strip() if line: # 分割后去除每个元素的空格,避免文本内的空格干扰数据 parts = [part.strip() for part in line.split(",")] username, password, points, dmgs, chugs, shields = parts # 将数值类型转换为int,方便后续游戏逻辑运算 points = int(points) dmgs = int(dmgs) chugs = int(chugs) shields = int(shields) print(dmgs) except FileNotFoundError: print(f"错误:未找到文件 {file_path}") except ValueError: print("错误:文件格式不正确,需为'用户名,密码,点数,伤害,道具1,道具2'格式") # 示例调用(先给全局变量username赋值) username = "user" load_user_data()
额外优化说明
- 新增
try-except块,可直接定位是文件缺失还是格式错误,便于排查问题。 - 对分割后的元素做去空格处理,适配你TXT文件中逗号后带空格的格式。
- 将数值类变量转为整数,避免后续游戏逻辑中出现字符串与数字混用的问题。
- 规范代码缩进,确保逻辑按预期顺序执行。
内容的提问来源于stack exchange,提问作者aaaaaaaaaaaaaahhhhhhhh
相关产品推荐
相关产品推荐

