在 Python 中分配一个全局数组
Assign a global Array in Python
我找到了一个项目来学习Python:俄罗斯方块
我的计划是在 variable() 函数中分配一个全局数组来清理我的 main() 函数。
但我收到语法错误
def globalv():
global x
x = 40
global y
y = 10
global Tetris[40][10]
for x in 40:
for y in 10:
Tetris[x][y] = 0
def main():
globalv()
if __name__ == "__main__":
main()
我不知道我做错了什么
谢谢
您的错误在于 for
循环以及 global Tetris[40][10]
.
的使用
global
上的错误只是您添加了索引,您只使变量本身成为全局变量。所以:
global Tetris
如果您更熟悉 C 或 Java,您需要声明变量及其大小的事实在 python 中不是问题(在最基本的级别)。
您在 for
循环中遇到的错误应该类似于:TypeError: 'int' object is not iterable
for
关键字需要一个迭代器,这本质上是您逐步完成的东西,例如列表。整数是不可迭代的,“for number in 40”的“字面”英语是有道理的,但在代码中却没有。
您需要的是使用 range
关键字,它基本上会生成最多 但不包括 的数字列表。所以你应该使用:
for x in range(40):
我找到了一个项目来学习Python:俄罗斯方块 我的计划是在 variable() 函数中分配一个全局数组来清理我的 main() 函数。
但我收到语法错误
def globalv():
global x
x = 40
global y
y = 10
global Tetris[40][10]
for x in 40:
for y in 10:
Tetris[x][y] = 0
def main():
globalv()
if __name__ == "__main__":
main()
我不知道我做错了什么 谢谢
您的错误在于 for
循环以及 global Tetris[40][10]
.
global
上的错误只是您添加了索引,您只使变量本身成为全局变量。所以:
global Tetris
如果您更熟悉 C 或 Java,您需要声明变量及其大小的事实在 python 中不是问题(在最基本的级别)。
您在 for
循环中遇到的错误应该类似于:TypeError: 'int' object is not iterable
for
关键字需要一个迭代器,这本质上是您逐步完成的东西,例如列表。整数是不可迭代的,“for number in 40”的“字面”英语是有道理的,但在代码中却没有。
您需要的是使用 range
关键字,它基本上会生成最多 但不包括 的数字列表。所以你应该使用:
for x in range(40):