0
내가 트리플 내 코드를 확인하고 지금까지 내가 말할 수있는 책 (LPTHW, 파이썬 2.7)에 주어진 ex40에 실질적으로 동일했다
:LPTHW ex 40이 작동하지 않습니까? (사전 운동, 키 반환하지 않습니다. 값 쌍을)
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 그것은 의미가 있지만, 솔직히 말해서 그것은 끔찍한 예입니다. 예를 들어 문맥에 따라 호출 할 함수를 동적으로 선택해야하는 경우와 같이 사전에 함수를 넣는 것이 유용 할 수 있습니다. 그러나 함수에 대한 사전과 데이터에 대한 사전이 있습니다. 그 물건을 섞으면 혼란스러워. –