0

私はコードに取り組んでいて、ユーザー入力が辞書にあるかどうかに基づいて if ステートメントを使用しようとしているという問題に遭遇しました。たとえば、ユーザーがアドレス帳で名前を検索したい場合、その応答を辞書のキーである変数 "findName" に保存するとします。また、辞書名が「contact」であるとしましょう。

if contact.has_key[findName] == True: 
    #Do something here. 
elif contact.has_key[findName] == False: 
    #Do something else.

問題は、これを行うたびに、「builtin_function_or_method」オブジェクトに属性「 getitem 」がないというエラー メッセージが表示されることです

コードのどこが間違っているのかよくわかりません。誰かが正しい答えと説明を教えてくれますか?

4

2 に答える 2

3

has_key メソッドを呼び出していません。

そのはず

if contact.has_key(findName) == True: 
    #Do something here. 
elif contact.has_key(findName) == False: 
    #Do something else.

これを行うためのよりPythonicな方法はを使用することinであり、使用できる False 条件を確認する必要はありませんelse

if findName in contact: 
    #Do something here. 
else: 
    #Do something else.
于 2013-10-19T01:20:27.483 に答える
2

構文エラーがあります。の後にコロンがあってはならずelif、 has_key はメソッドです:

if contact.has_key(findName) == True: 
    #Do something here. 
elif contact.has_key(findName) == False: 
    #Do something else.

しかし、もちろん、これは次のように単純化できます。

if contact.has_key(findName): 
    #Do something here. 
else:
    #Do something else.
于 2013-10-19T01:18:41.480 に答える