【问题标题】:Print user input using python使用 python 打印用户输入
【发布时间】:2014-05-14 11:36:25
【问题描述】:

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

packageList = []
package = input("Enter name: ")
while package == '' :
    print("Package name cannot be blank")
    packagename = input("Enter name: ")
    packageList.append(packageName)

print ((packageName) + "added")

我不确定我做错了什么。显示错误:UnboundLocalError: local variable 'packageName' referenced before assignment

【问题讨论】:

  • 您从未创建过packageName 变量。也许您的意思是 packagepackageName 是同一个变量,并混淆了您使用的名称。
  • 另外,packageList.append(packageName) 绝对不应该在那个循环中。
  • 谢谢!!!就这么简单。我已经尝试了很多年!

标签: python python-3.x


【解决方案1】:

您的代码给了您错误,因为您混淆了变量 packagepackageName 的使用,而看起来您应该在两个地方使用相同的变量。 aj8uppal 的答案中的代码纠正了大部分问题(通过用packagename 替换对这两个变量的大多数引用),但他从未清楚地描述这是问题所在(并且他仍然在while 条件中留下一个对package 的引用)。

这里有一些实际固定的代码:

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

【讨论】:

    【解决方案2】:

    您的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")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多