列印方法應為:“從方格 'x', 'y' 我們找到 'animal'”。我必須使用 enumerate -method 來獲取代表動物的字母的坐標,我很掙扎。check-field 方法應該在每次迭代時呼叫 check_square 方法。
ANIMALS = {
"a": "alpaca",
"k": "kangaroo",
"@": "cat",
"h": "hamster",
"l": "leopard"
}
def check_square(char, row_num, col_num):
if char != " ":
print("From square ({}, {}) we find {}"
.format(col_num, row_num, ANIMALS[char]))
def check_field(field):
for i in enumerate(field):
#print(i)
for j in enumerate(i):
#print(i)
#print(enumerate(field))
#print(i)
#print(j)
check_square(field[i], enumerate(j), enumerate(i))
field = [
[" ", "a", " ", " ", "l"],
[" ", "k", "@", "k", " "],
["h", " ", "a", "k", " "]
]
check_field(field)
uj5u.com熱心網友回復:
將您的check_field功能更改為:
def check_field(field):
for y, row in enumerate(field):
for x, char in enumerate(row):
check_square(char, y, x)
在你的方式寫的,i并且j是元組。您i在第二個 for 回圈中錯誤地迭代。您還將列舉物件傳遞到check_square應該傳遞索引/坐標本身的時間。
您還需要編輯您的check_square函式,特別是字串格式:
.format(col_num, row_num, ANIMALS[char])
應該變成:
.format(col_num, row_num, ANIMALS.get(char, "nothing"))
您的ANIMALS字典沒有 的鍵值對" "。嘗試訪問該密鑰將引發KeyError. 使用該.get方法可以在密鑰不存在的情況下提供默認值。或者,您也可以只為" "in添加一個條目ANIMALS。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/339436.html
