Python中的错误:名称'...'未定义

-2 投票
4 回答
1403 浏览
提问于 2025-04-18 10:44

我正在用一个列表来存储一些值。

示例代码:

for i in range(3):
  print i
  lst[i] = i+1
  print lst[i]

但是我遇到了这样的错误:

lst[i] = i+1
NameError: name 'lst' is not defined

在Python中,数组需要初始化吗?我的代码有什么问题?

4 个回答

-1

在编程中,有时候我们需要处理一些数据,这些数据可能来自不同的地方,比如用户输入、文件或者网络请求。为了让程序能够理解这些数据,我们通常需要将它们转换成一种程序能够处理的格式。

比如说,如果我们从一个网页上获取了一些信息,这些信息可能是以文本的形式存在的。为了让程序能够使用这些信息,我们需要把它们转化为程序可以理解的对象,比如数字、字符串或者列表。

这个过程叫做“解析”,也就是把复杂的东西变得简单易懂。解析之后,我们就可以对这些数据进行各种操作,比如计算、排序或者显示给用户。

总之,解析就是把数据从一种形式转换成另一种形式,以便程序能够更好地使用它们。

lst = []
for i in range(3):
    print i
    lst.append(i+1)
    print lst[i]
1

是的,你应该这么做。

lst=[]
for i in range(3):
  print i
  lst.append(i+1)
  print lst[i]
2

你应该把列表初始化为一个空列表,代码是 lst=[]

lst=[]
for i in range(3):
  print i
  lst.append(i+1)
  print lst[i]

还有一种方法可以做到;上面那5行代码其实可以用下面这一行的列表推导式来替代,除了打印的部分:

lst=[i+1 for i in range(3)]
3

这是你的代码:

    for i in range(3):
        print i
        lst[i] = i+1
        print lst[i]

这里面有两个地方是错的

1- you havn't initialize your list, the computer doesn't know yet that you are working with a list (like you do in programs where u keep track of a counter variable like count = count + i because it must have a seed value to start with)
2- you cannot append elements to a list with the assignment operator, use the append function for that.

所以这是正确的代码:

    lst = []
    for i in range(3):
        print(i)
        lst.append(i+1)
    print(lst[i])

输出结果是: 0 1 2 3

撰写回答