【发布时间】:2014-06-19 17:13:44
【问题描述】:
我正在创建一个实用程序,其功能将用作另一个程序的一部分。
这是我的功能(已编辑):
def push_up (grid):
new_grid = up_down_swapper(grid)
new_grid = zero_DR(new_grid)
for i in range(4):
for j in range(3):
if new_grid[i][j] == new_grid[i][j+1]:
new_grid[i][j+1] = (new_grid[i][j])+(new_grid[i][j])
new_grid[i][j] = 0
else:
pass
new_grid = zero_DR(new_grid)
grid = up_down_swapper(new_grid)
#print(grid) - shows the grid as the expected outcome. But outside of the function it doesn't change
这是它的使用方法:
push.push_up (grid)
正如你们所看到的,它没有被分配给像
这样的值new_grid = push.push_up (grid)
我无法更改主程序(这是一项任务,这是我被告知要做的。)
我的问题是如何获得改变参数值的函数?我不确定我是否有道理,但类似这样:
def square(x):
x = x*x
value = 3
square(value)
print(value)
这将输出 3,但我想要 9。我该怎么做呢?
这里是主要代码的粘贴箱: http://pastebin.com/NAxWL14h
【问题讨论】:
-
...您似乎正在就地修改
grid。究竟是什么问题? -
我认为这是一个范围问题。见相关文章:stackoverflow.com/questions/370357/…
-
我的问题是“网格”在函数之外没有改变。我已编辑问题以显示新代码。
标签: python arrays list function python-3.x