Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python全局数组_Python_Python 2.7 - Fatal编程技术网

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。