使用python打印用户输入

时间:2014-05-14 01:38:38

标签: python python-3.x

我正在尝试打印包名称的用户输入。我有以下代码。

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'在分配前引用

2 个答案:

答案 0 :(得分:1)

您的代码会给您错误,因为您混淆了变量packagepackageName的使用,当您看起来应该在两个地方都使用相同的变量时。 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")