【问题标题】:write a basic inventory management system python [closed]编写一个基本的库存管理系统python [关闭]
【发布时间】:2021-10-16 01:12:19
【问题描述】:

大家好,我正在编写一个基本的库存管理系统,并且在我的一个函数中,我试图在文本文档中打印特定值,以用于尝试打印我不断返回的用户名、数字和用户名称的函数

UnboundLocalError:分配前引用了局部变量“user_numbers”

这是我的代码:

def display_users():
all_users = open('all_users.txt', 'r')
user_description = all_users.readline()
print('All Current User')
print('<----------------->')
while user_description != '':
    user_names = all_users.readline()
    user_numbers = user_numbers.rstrip('\n')
    user_desig = user_desig.rstrip('\n')
    print('User Names:     ', user_names)
    print('User PH Numbers: ', user_numbers)
    print('User Designations: ', user_desig)
    print('<---------->')
    user_description = all_users.readline()
all_users.close()

编辑:我已经把它变成了一个全局变量,现在它只是说

"NameError: name 'user_numbers' is not defined"

https://pastebin.pl/view/ae461557 这是完整的代码

【问题讨论】:

  • 这可能是由您的代码缩进引起的 - 目前它似乎在这里不起作用(def display_users() 并且其余代码没有正确的缩进)。请修正您的缩进(即空格等),以便我们更好地帮助您。

标签: python system inventory


【解决方案1】:

问题在于user_numbers = user_numbers.rstrip('\n'),特别是第二部分。该错误为您提供了清晰的描述:user_numbers 尚未定义,因此您不能在其上调用rstrip。你的意思是输入user_names.rstrip('\n')吗?

【讨论】:

  • 我已通过粘贴箱链接将完整代码添加到初始帖子中
  • user_numbers 定义为全局并没有帮助,您应该为其分配一个值。你认为user_numbersuser_numbers.rstrip('\n') 中有什么价值?
  • 我在一个文本文档中有用户名、数字和名称我只是想在一个显示的列表中打印所有名称数字和名称,以便用户可以看到该程序的所有当前用户
【解决方案2】:

问题出在这一行

user_numbers = user_numbers.rstrip('\n')

在循环的第一次迭代中,user_numbers 没有任何值,因此您不能在其上调用 user_numbers.rstrip('\n')。我不完全按照您构建文本文件的方式进行操作,但您可能想先拨打user_numbers = all_users.readline() 电话。

【讨论】:

  • 在代码的前面部分,我创建了一个文本文档,其中包含一个初始问题,让用户输入姓名和名称。已通过粘贴箱链接将完整代码放入原始帖子
  • 如果我正确理解您的代码,在您的 rstrip 行之前添加 user_numbers = all_users.readline() 行将解决 this 错误,但我发现了其他几个问题在这之后会遇到。我建议您尝试理解为什么不能只在变量没有设置值的情况下调用它们的方法。我不会为你调试整个程序(因为你不会那样学习)。
猜你喜欢
  • 1970-01-01
  • 2011-03-16
  • 2013-08-18
  • 1970-01-01
  • 2014-01-23
  • 2012-12-10
  • 1970-01-01
  • 2018-06-25
  • 1970-01-01
相关资源
最近更新 更多