问题描述
下面是我编写的代码,用于检查Sudoku板(这里称为板)是否有解决方案。
每当我运行功能resolve_board时,board_copy和board变量都会改变。 board变量将与board_copy变量匹配。我希望board_copy能够改变,因为Python中的变量是通过赋值传递的。为什么更换板子?它没有传递给函数,所以我不希望函数影响它。
board_copy = board
solve_board(board_copy)
def solve_board(board):
for row in range(9):
for col in range(9):
if board[row][col] == 0:
for num in range(1,10):
if valid_move(row,col,num,board):
board[row][col] = num
if solve_board(board,"possible"):
return True
board[row][col] = 0
return False
return True
解决方法
该行:
board_copy = board
指出board_copy
指向board
,所以如果您也更改了其他任何更改。
它们是指向同一对象的不同名称。