我正试图创建一个代表棋盘的列表。我有这样的代码:
#possible list items
EMPTY = "-"
ROOK = "ROOK"
KNIGHT = "KNIGHT"
BISHOP = "BISHOP"
QUEEN = "QUEEN"
KING = "KING"
PAWN = "PAWN"
board = []
royal_row = [] #list for row containing king
pawn_row = []#list for pawn row
row = [] #generic row
#setting the board
for i in range(8):
if i == 0 or 7:
royal_row = [ROOK,KNIGHT,BISHOP,QUEEN,KING,BISHOP,KNIGHT,ROOK]
board.append(royal_row)
elif i == 1 or 6:
pawn_row = [PAWN for i in range(8)]
board.append(pawn_row)
else:
row = [EMPTY for i in range(8)]
board.append(row)
for i in range(8):
print(board[i], end = "\n")当我运行这段代码时,它只会打印:
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']我的预期产出是:
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN']
['-', '-', '-', '-', '-', '-', '-', '-']
['-', '-', '-', '-', '-', '-', '-', '-']
['-', '-', '-', '-', '-', '-', '-', '-']
['-', '-', '-', '-', '-', '-', '-', '-']
['PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']如果我将1、0、6和7分隔到它们自己的elif子句中,那么它将正确地打印出来,但我想了解为什么原始代码没有
发布于 2021-08-27 19:46:18
您决定更改if's和put:i == 0 or i == 7和i == 1 or i == 6
#possible list items
EMPTY = "-"
ROOK = "ROOK"
KNIGHT = "KNIGHT"
BISHOP = "BISHOP"
QUEEN = "QUEEN"
KING = "KING"
PAWN = "PAWN"
board = []
royal_row = [] #list for row containing king
pawn_row = []#list for pawn row
row = [] #generic row
#setting the board
for i in range(8):
if i == 0 or i == 7:
royal_row = [ROOK,KNIGHT,BISHOP,QUEEN,KING,BISHOP,KNIGHT,ROOK]
board.append(royal_row)
elif i == 1 or i == 6:
pawn_row = [PAWN for i in range(8)]
board.append(pawn_row)
else:
row = [EMPTY for i in range(8)]
board.append(row)
for i in range(8):
print(board[i], end = "\n")发布于 2021-08-27 19:44:35
if i == 0 or 7:
这一声明实质上如下
if i == 0 or 7 != 0
所以,因为7总是大于1,所以它总是正确的。
若要解决此问题,请尝试以下方法
if i == 1 or i == 7
https://stackoverflow.com/questions/68958639
复制相似问题