Python全局数组
我试着做:Python全局数组,python,python-2.7,Python,Python 2.7,我试着做: x = [] def func(): for y in range(0,5): x.append(y) def func2(): for i in range(0, 5): print x[i] 我得到了一个错误: 索引器:列表索引超出范围 如何放置全局x阵列?并在func2中访问x数组的值。列表索引超出范围是因为调用func2()时列表中没有元素 由于您正在一个范围(0,5)上循环,请使用x=[0]*5 x = [] def func()
x = []
def func():
for y in range(0,5):
x.append(y)
def func2():
for i in range(0, 5):
print x[i]
我得到了一个错误:
索引器:列表索引超出范围
如何放置全局x阵列?并在func2中访问x数组的值。列表索引超出范围是因为调用func2()时列表中没有元素 由于您正在一个范围(0,5)上循环,请使用
x=[0]*5
x = []
def func():
for y in range(0,5):
x.append(y)
def func2():
for i in range(0, 5):
print x[i]
func()
func2()
如果调用函数func()时没有实际包含元素,则显然
print x[i]
将引发索引越界异常,因为列表为空。列表索引越界是因为调用func2()时列表中没有元素
由于您正在一个范围(0,5)上循环,请使用x=[0]*5
x = []
def func():
for y in range(0,5):
x.append(y)
def func2():
for i in range(0, 5):
print x[i]
func()
func2()
如果在函数func()中调用func2(),但实际上没有包含元素,则显然
print x[i]
将引发索引越界异常,因为列表为空。原始问题的解决方案如下:
x = []
def func():
y = 2
x.append(y)
def func2():
for i in range(0, 5):
print(x[i])
调用func
5次,它就工作了:
for n in range(5):
func()
func2()
输出:
2
2
2
2
2
您的列表
x
仍然为空。调用func
追加2
。整个代码并不是很有用,但它演示了它是如何工作的。原始问题的解决方案如下:
x = []
def func():
y = 2
x.append(y)
def func2():
for i in range(0, 5):
print(x[i])
调用func
5次,它就工作了:
for n in range(5):
func()
func2()
输出:
2
2
2
2
2
您的列表
x
仍然为空。调用func
追加2
。整个代码不是很有用,但它演示了它是如何工作的。如果在调用func
>>> x=[]
>>> func2()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in func2
IndexError: list index out of range
>>> func()
>>> func2()
0
1
2
3
4
>x=[]
>>>func2()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“”,第3行,在func2中
索引器:列表索引超出范围
>>>func()
>>>func2()
0
1.
2.
3.
4.
如果在调用func
>>> x=[]
>>> func2()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in func2
IndexError: list index out of range
>>> func()
>>> func2()
0
1
2
3
4
>x=[]
>>>func2()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“”,第3行,在func2中
索引器:列表索引超出范围
>>>func()
>>>func2()
0
1.
2.
3.
4.
如果声明func()
早于func2()
重要的是你应该在func2()
之前调用func()
,否则你会得到错误,因为你的数组仍然是空的
因此:
x = []
def func():
for y in range(0,5):
x.append(y)
def func2():
for i in range(0, 5):
print x[i]
func()
func2()
工作
但这是:
x = []
def func():
for y in range(0,5):
x.append(y)
def func2():
for i in range(0, 5):
print x[i]
func2()
func()
没有 如果声明
func()
早于func2()
重要的是你应该在func2()
之前调用func()
,否则你会得到错误,因为你的数组仍然是空的
因此:
x = []
def func():
for y in range(0,5):
x.append(y)
def func2():
for i in range(0, 5):
print x[i]
func()
func2()
工作
但这是:
x = []
def func():
for y in range(0,5):
x.append(y)
def func2():
for i in range(0, 5):
print x[i]
func2()
func()
没有 请注意,您的代码不会运行。没有定义
y
,需要在函数声明(def func():
)后加括号()
。此代码不完整,并且语法无效。。你怎么称呼func和func2?你真的在x上加了五个项目吗?我想这是在打印x[I]时发生的吧?!那么,数组中有5个元素吗。。。!?您正在访问全局数组。你似乎没有五种元素。您仍然没有显示运行时实际给出错误的代码。如果是全局问题,您将看到不同的错误消息。所有符号都指向数组中没有5个元素。请注意,您的代码不会运行。没有定义y
,需要在函数声明(def func():
)后加括号()
。此代码不完整,并且语法无效。。你怎么称呼func和func2?你真的在x上加了五个项目吗?我想这是在打印x[I]
时发生的吧?!那么,数组中有5个元素吗。。。!?您正在访问全局数组。你似乎没有五种元素。您仍然没有显示运行时实际给出错误的代码。如果是全局问题,您将看到不同的错误消息。所有符号都指向数组中没有5个元素。“否”或小于5。“否”或小于5。