2017-06-13 5 views
1

は、タイルは、インデックスと同じであるかどうかを確認、私が行うことができるようにしたい何を、8行目にある私のコードdictキーの値を確認するために反復変数を使用しますか?ここ

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") 

であり、また、キーの値を確認します(この部分は*です*******)

基本的には、indexという反復変数を使用して、indexと同じキーの値を要求してチェックしたいと考えています。これは

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

ように見えるかもしれません役立つと私は物事のこれらの種類を説明するには非常に良いではありませんよと、さらに説明するwiling以上だしてください。

+1

'check'のキーは文字列ですが、forループの' index'はintになります。単純に 'check [str(index)]'のような文字列にキャストするだけです。 – Hamms

+0

また、反復ごとに 'int'に変更するのではなく、入力自体の間に' tile'を 'int'に変換する方が良いでしょう。 –

+0

@ハムズありがとう、これはうまくいった。私は前にそれを試しましたが、私は台無しにしなければならないので、可能性を無視しました。 – beck5

答えて

2

試してみてください。

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

(あなたは1を入力した場合)tileが既に整数である可能性があります。 checkのキーは文字列です。

+0

'tile'はOPがPython 2を使用している場合にのみ整数になります。この場合、潜在的に危険なPython 2の' input'ではなく 'raw_input'(これはPython 3の' input'と同等です)関数。 –

+0

私は同意し、 'raw_input'を使ってキャストします。ここの問題ではなく、常に言及する価値がある。 – RaphaMex

+0

ブールリテラルと直接比較しないでください。代わりに 'not check [str(index)]'を使用してください。 – chepner

関連する問題