2 回答

TA貢獻1860條經驗 獲得超8個贊
這里有一些問題:
如果你迭代一個列表,你遍歷元素列表中,未對指標; 和
如果查詢type(..)你就不會得到一個字符串作為回報元素,但對類的引用。因此,您可以像這樣解決此問題:
board = [[1,2,3],[4,5,6],[7,8,9]]
def drawboard(board):
for row in board:
for item in row:
if type(item) == int:
print(str(item))
print("|")
else:
print(item)
print("|")
print("\n")
print("------")
print("\n")
drawboard(board)
由于非str項目通常str(..)在調用print時為-ed,因此我們甚至可以將ifandelse分支合并為:
def drawboard(board):
for row in board:
for item in row:
print(item)
print("|")
print("\n")
print("------")
print("\n")
drawboard(board)
如果繼續進行這種類型檢查,通常檢查類型相等性也不是一個好主意。由于如果元素是子類的,則類型不再是int。然后,您最好使用isinstance(..)。
添加回答
舉報