我正在尝试打印包名称的用户输入。我有以下代码。
packageList = []
package = input("Enter name: ")
while package == '' :
print("Package name cannot be blank")
packagename = input("Enter name: ")
packageList.append(packageName)
print ((packageName) + "added")
我不确定我做错了什么。显示错误:UnboundLocalError:局部变量' packageName'在分配前引用
答案 0 :(得分:1)
您的代码会给您错误,因为您混淆了变量package
和packageName
的使用,当您看起来应该在两个地方都使用相同的变量时。
aj8uppal的答案中的代码纠正了大部分内容(通过用packagename
替换大多数对两个变量的引用),但是他从未明确地描述过这是问题(并且他仍然在package
中留下一个引用。 while
条件)。
这是一些实际修复的代码:
packageList = []
package = input("Enter name: ")
while package == '' :
print("Package name cannot be blank")
package = input("Enter name: ") # assign to package variable here
packageList.append(package) # unindent, and use package again
print ((package) + "added") # use package rather than packageName
答案 1 :(得分:0)
您的packageList.append(packageName)
不应该在while
循环中。你的while
循环只是确保输入不是空白,所以我们不想附加它。
您正在做的不是引发错误,因此packageName
不存在。因此,您正在打印一个未调用的变量。
此外,您致电package = input(...)
,但如果出现错误,请致电packagename = input(...)
。你可能想改变它。
以下是您编辑的代码:
packageList = []
packagename = input("Enter name: ")
while package name == '' :
print("Package name cannot be blank")
packagename = input("Enter name: ")
packageList.append(packageName)
print ((packageName) + "added")