2017-06-13 50 views
1

這裏是我的代碼使用迭代變量檢查代碼鍵的值?

tiles = [" a ", " b ", " c ", " d ", " e ", " f ", " g ", " h ", " i "] 
check = {'0': False, '1': False, '2': False, '3': False, '4': False, '5': False, 
     '6': False, '7': False, '8': False} 

tile = input("Player 1: What tile?") 

for index, z in enumerate(tiles): 
    if int(tile) == index and ********: 
     tiles[index] = str("xxxxx") 

我希望能夠做的,就是在第8行,檢查瓷磚是一樣的指標,並檢查該鍵的值(這部分是* *******)

基本上我想使用迭代變量index來請求和檢查與index相同的密鑰的值。這可能看起來像

if int(tile) == index and check[?index?] == False: 

請幫助,我不僅僅是要解釋進一步,因爲我不是很擅長解釋這些事情。

+1

在'check'鍵是字符串,但是'index'在for循環將是一個int。只需將它轉換爲像一個字符串'檢查[STR(指數)]' – Hamms

+0

此外,它會更好,如果你轉換'tile'到'輸入過程本身int',而不是將其更改爲'int'在每個迭代上。 –

+0

@Hamms非常感謝你,這工作。我之前嘗試過,但我必須搞砸了,因此忽略了這種可能性。 – beck5

回答

2

嘗試:

if int(tile) == index and not check[str(index)]: 

有機會,tile已經是一個整數(如果你輸入了一個)。 check的鍵是字符串。

+0

'如果OP使用Python 2中,在這種情況下它們確實需要使用'raw_input'(這相當於到Python 3的'input'),而不是潛在的危險的Python 2'input' tile'將僅是一個整數已經功能。 –

+0

我同意,使用'raw_input'然後投射。這裏不是問題,但總是值得一提。 – RaphaMex

+0

不要直接與布爾文字進行比較;只需使用'不檢查[str(index)]'。 – chepner