尝试根据用户输入从字典中打印特定的键和值



我有一个程序,它要求我访问一个包含邮政编码和城市名称的字典,名为

countyzips = {'90210': 'Beverly Hills', '90001' : 'Los Angeles', etc.}

如果邮政编码在字典中,我想让程序打印"邮政编码= 90210,城市=比佛利山";为例。如果邮政编码不在字典中,则打印"邮政编码xxxxx不在洛杉矶县"。现在我好像不能使这个程序工作。

这是我到目前为止的代码

zip = input('enter zip code:')
for x,y in countyzips.items():
if x in countyzips:
print (f'zipcode = {x} , city = {y}')
else:
print (f'zip code = {x} not in Los Angeles county')

您可以使用简单的in运算符来检查key是否在字典中:

countyzips = {"90210": "Beverly Hills", "90001": "Los Angeles"}
zip_ = input("enter zip code:")
if zip_ in countyzips:
print(f"zip code = {zip_}, city = {countyzips[zip_]}")
else:
print(f"zip code = {zip_} is not in Los Angeles County")

打印(例如):

enter zip code:90210
zip code = 90210, city = Beverly Hills

注意:不要使用zip,list等名称。

如下所示。我们的想法是使用county_zips.get,如果给定的邮政编码没有城市,它将返回None。

county_zips = {'90210': 'Beverly Hills', '90001': 'Los Angeles'}
zip_ = input('Type the zip please:')
city = county_zips.get(zip_)
if city is not None:
print(f' The zip code {zip_} belongs to the city {city}')
else:
print(f'The zip code {zip_} does not belong to a city in L.A county')

如果您没有缩进错误,您的代码将无法工作,因为您循环遍历字典中的每个键/值对作为x,y,并检查x是否实际上是有效的邮政编码。您实际上没有检查输入的邮政编码(zip)的任何内容。

注意:你不应该使用Python内置函数的名字,比如zip作为变量名。选一些还没用过的,比如zipcode

工作版本:

countyzips = {'90210': 'Beverly Hills', '90001' : 'Los Angeles'}
zipcode = input('enter zip code:')
if zipcode in countyzips:
print (f'zipcode = {zipcode} , city = {countyzips[zipcode]}')
else:
print (f'zip code = {zipcode} not in Los Angeles county')

dict如果键不在字典中则引发KeyError。好好利用这一点。

countyzips = {'90210': 'Beverly Hills', '90001' : 'Los Angeles'}
zipcode = input('enter zip code:')
try:
print(f'zipcode = {zipcode} , city = {countyzips[zipcode]}')
except KeyError:
print(f'zip code = {zipcode} not in Los Angeles county')

~

最新更新