0
私はトリプル私のコードをチェックし、限り、私はそれを言うことができるようにブック(LPTHW、Pythonの2.7)で与えex40する実質的に同じですしている:LPTHW ex 40 not working? (辞書運動は、キー返しません:valueのペア)
cities = {'CA': 'San Francisco', 'MI': 'Detroit', 'FL': 'Jacksonville'}
cities['NY'] = 'New York'
cities['OR'] = 'Portland'
def find_city(themap, state):
if state in themap:
return themap[state]
else:
return "Not found."
cities['_find'] = find_city
while True:
print "State? (ENTER to quit)",
state = raw_input("> ")
if not state: break
city_found = cities['_find'](cities, state)
print city_found
期待される出力は次のようなものです:
State? (ENTER to quit) > CA
San Francisco
State? (ENTER to quit) > FL
Jacksonville
State? (ENTER to quit) > O
Not found.
State? (ENTER to quit) > OR
Portland
State? (ENTER to quit) > VT
Not found.
State? (ENTER to quit) >
しかし、私はそれを実行したとき、私は空白行に入力してヒットするまで、入力行は、街を生産することはありません、繰り返されます。ように:
State? (Enter to quit) > KS
State? (Enter to quit) > NY
State? (Enter to quit) > LA
State? (Enter to quit) > CA
State? (Enter to quit) >
Not found.
誰も私が見落としている私に教えてもらえますか?
ありがとうございました。
ありがとうございます。新しいページで視覚的に見え方が違っていて、行番号からスペースを確認しませんでした。関数を直接呼び出すのではなく、関数を辞書に組み込む方法を教えていると思っています。 – themagicbean
@themagicbeanそれは理にかなっていますが、正直言ってひどい例です。たとえば、コンテキストに応じてどの関数を呼び出すかを動的に選択する必要がある場合など、関数を辞書に入れると便利です。しかし、関数用の辞書とデータ用の辞書があります。それを混ぜることは混乱している。 –