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

Python基础库存管理系统display_users函数变量报错求助

问题根因
  • 核心逻辑错误:你在循环中仅读取了user_names字段,没有从文件中读取user_numbers、user_desig两个字段的值,就直接调用这两个未定义变量的rstrip方法,触发了变量未定义相关报错
  • 全局变量设置无效:全局作用域中从未定义过user_numbers等变量,强行设置全局引用自然会抛出NameError,该问题和变量作用域无关,不需要设置全局变量
修复方案

首先确认你的all_users.txt存储格式为:每个用户占用3行,依次为用户名、手机号、职位,用户之间可加空行分隔。修复后的代码如下:

def display_users():
    # 用with上下文管理器自动管理文件关闭,避免资源泄漏
    with open('all_users.txt', 'r', encoding='utf-8') as all_users:
        print('All Current User')
        print('<----------------->')
        while True:
            # 依次读取三个字段
            user_names = all_users.readline()
            user_numbers = all_users.readline()
            user_desig = all_users.readline()
            # 读到文件末尾直接退出循环
            if not user_names or not user_numbers or not user_desig:
                break
            # 先去除换行符再输出
            user_names = user_names.rstrip('\n')
            user_numbers = user_numbers.rstrip('\n')
            user_desig = user_desig.rstrip('\n')
            # 跳过空行块(适配用户间有空行分隔的文件格式)
            if user_names == '' and user_numbers == '' and user_desig == '':
                continue
            print('User Names:     ', user_names)
            print('User PH Numbers: ', user_numbers)
            print('User Designations: ', user_desig)
            print('<---------->')
额外优化建议

如果后续需要调整存储格式,推荐每个用户占用一行、用逗号/制表符分隔不同字段,读取时直接按分隔符拆分即可,逻辑更简单不容易出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:39:04