【问题标题】:UnboundLocalError: local variable 'list' referenced before assignment [duplicate]UnboundLocalError:分配之前引用的局部变量“列表”[重复]
【发布时间】:2021-04-02 20:40:20
【问题描述】:

我想将参数打印为列表,但出现此错误。我知道我可以用其他方式做到这一点,但我想知道为什么会发生这个错误。代码如下:

def likes(*names):
    list=list(names)
    print(list)
likes("max","john","evan","matilda")

【问题讨论】:

  • 把你的变量名list改成别的。
  • 将变量列表更改为其他内容,例如我的列表。摆脱星号(无需与 Python 中的指针符号混淆)。将单词列表放入 [ ]...def likes(names): my_list=list(names) print(my_list) likes(["max","john","evan","matilda"])

标签: python python-3.8


【解决方案1】:
def likes(names):
    my_list=list(names)
    print(my_list)

likes(["max","john","evan","matilda"])
  1. 通过将“*”删除为仅名称来更改函数参数。
  2. 将“列表”变量更改为其他变量,因为编译器可能会混淆。切勿将 Python 关键字用作变量名。
  3. list() 函数采用数组参数,因此您需要将名称括在 [ ] 之间。

【讨论】:

  • 请注意唯一的原始代码的实际问题是使用list作为局部变量名。无需将输入更改为列表 - 该函数的重点是将参数转换为列表并打印它。阅读更多关于打包和拆包的信息here
猜你喜欢
  • 2013-02-28
  • 2021-12-16
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 2012-06-06
相关资源
最近更新 更多