我正在用 Python 自動化無聊的東西,我很困惑為什么“無”在完成字典迭代后不斷出現。我正在數數有多少棋子。我知道我目前只計算空間。
原來我有。
chessPieces = { 'player1': {'1a': 'wpawn', '1b': 'wknight', '1c': 'wbishop'},
'player2': {'8a': 'bpawn', '8b': 'bknight', '8c': 'bbishop'}}
def isValidChessBoard(d):
numPieces = 0
for k in d.keys():
for v in d[k].keys():
numPieces = 1
print(numPieces)
然后我想也許添加一個 while 回圈來計算鍵的數量可能有助于避免它,但我得到了相同的結果。知道為什么會發生這種情況,或者我沒有正確理解什么?
chessPieces = { 'player1': {'1a': 'wpawn', '1b': 'wknight', '1c': 'wbishop'},
'player2': {'8a': 'bpawn', '8b': 'bknight', '8c': 'bbishop'}}
def isValidChessBoard(d):
numPieces = 0
players = len(d.keys())
while players:
for k in d.keys():
players -= 1
for v in d[k].keys():
numPieces = 1
print(numPieces)
print(isValidChessBoard(chessPieces))
Output
6
None
提前致謝,
uj5u.com熱心網友回復:
你在函式中有一個列印,然后你有函式回傳的列印。該函式沒有回傳任何內容,因此第二個列印陳述句不列印任何內容!很接近。這對我來說更有意義。
chessPieces = { 'player1': {'1a': 'wpawn', '1b': 'wknight', '1c': 'wbishop'},
'player2': {'8a': 'bpawn', '8b': 'bknight', '8c': 'bbishop'}}
def CountChessPieces(d):
numPieces = 0
for k in d.keys():
for v in d[k].keys():
numPieces = 1
return numPieces
print(CountChessPieces(chessPieces))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/330470.html
上一篇:傳遞閉包
下一篇:按Key的第二個元素對字典排序
