学习Python艰难的方式Ex40

0 python dictionary python-2.7

我正在从名为"学习python艰难的方式"的书中学习python,我在exercise40中遇到了这段代码

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

# ok pay attention!
cities['_find'] = find_city

while True:
    print "State? (ENTER to quit)",
    state = raw_input("> ")
    if not state: break

# this line is the most important ever! study!
city_found = cities['_find'](cities, state)
print city_found
Run Code Online (Sandbox Code Playgroud)

1.是否有必要在字典中添加"find_city"功能?

2.我可以删除函数"find_city"中的"themap"参数吗?

这是我的新代码,它仍然可以运行,没有任何错误:

cities = {"CA" : "San Francisco", "MI" : "Detroit", "FL" : "Jacksonville"}

cities["NY"]= "New York"
cities["OR"] = "Portland"

def find_city(state):
    if state in cities:
        return cities[state]
    else:
        return "Not Found."

while True:
    print "State? (ENTER to quit)",
    state = raw_input(">")
    if not state:
        break
    city_found = find_city(state)
    print city_found
Run Code Online (Sandbox Code Playgroud)

Ant*_*ala 5

  1. 不它不是.

  2. 是的你可以.

作为旁注,Stack Overflow上的许多顶级应答者都不建议使用学习Python的方法 - 完全相反.作为一个新手,在2017年,您将更好地学习Python 3并使用其他资源.

  • 虽然2017年离开了不多:) (4认同)
  • 好吧,更糟糕的是:D (4认同)