我已经编写这段代码大约一个小时了,但我无法完成最后一步。我需要修改下面的这段代码。根据我的尝试和阅读,它位于前 3 行中的某个位置(但整个代码可能需要修改)。我需要将每个输入行转换为一个列表,将其 append 到板列表中,并在最后返回一个数独板。
最后的输出应该是输入初始S板的文件==>
;然后我输入 board3.txt
(包含在帖子末尾)并获取我在此代码中制作的图表。
def read_board(fn):
board = []
for line in open(fn,'r'):
# FIXME
def print_board( board ):
for r in range(0,9):
if r%3 == 0:
print '-'*25
print '|',
for c in range(0,9):
print board[r][c],
if c==2 or c==5:
print '|',
elif c==8:
print '|'
print '-'*25
def ok_to_add(row,col,num,board):
return True
if __name__ == "__main__":
name = raw_input("Enter the file for the initial S board ==> ").strip()
board = read_board(name)
print_board(board)
board3.txt
:
1 . . . 2 . . 3 7
. 6 . . . 5 1 4 .
. 5 . . . . . 2 9
. . . 9 . . 4 . .
. . 4 1 . 3 7 . .
. . 1 . . 4 . . .
4 3 . . . . . 1 .
. 1 7 5 . . . 8 .
2 8 . . 4 . . . 6
最佳答案
您只需分割
每一行。它会自动用空格分隔该行并将其放入一个列表中。
def read_board(fn):
with open(fn, 'r') as file:
return [line.split() for line in file]
关于python - 需要将 txt 文件导入 Python 并将其与此代码一起使用(将输入行转换为列表、 append 它并返回值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17777802/