第一篇文章!我正在慢慢地用Python自动化无聊的东西,并且正在用get()方法和字典做一些实验(第5章)。我写了一小段代码来告诉我我输入的国家的首都,或者,如果它不在我的字典中,首都城市是“不可用的”。
然而,即使我输入字典中包含的国家/地区,也会出现“不可用”的响应。对此有什么见解吗?我尝试在Google上搜索在get()方法中使用字典的情况,但没有找到太多解释这个问题的答案。代码如下:
capitals = {'Australia': 'Canberra', 'England': 'London', 'South Africa': 'Pretoria'}
print('Choose country')
country = input()
print('The capital of ' + country + ' is '
+ capitals.get(capitals[country], 'not available'))
3条答案
按热度按时间56lgkhnf1#
get
方法 * 替换了 *__getitem__
(通常通过括号表示法访问)。capitals.get(capitals[country], 'not available')
实际上执行了两个查找:capitals[country]
查找首都,例如堪培拉。capitals.get(...)
然后查找首都的名称作为国家。很少有这种情况不会失败。如果你查找一个不存在的国家,
capitals[country]
只会引发一个KeyError
。你可能想做的是
还有一个需要注意的问题是Python字典是区分大小写的,无论传入的是
Australia
、australia
还是aUstrAlIA
,都可能需要返回Canberra
,标准的方法是将字典的键全部小写,然后使用小写或大小写合并的版本进行查找:请注意,我将第一个
print
替换为input
的参数,并删除了第二个print
中的+
运算符。um6iljoc2#
下面是Synax的get()方法:
在你的字典里,关键词是“澳大利亚”这样的国家。
在您的代码中:
capitals[country]
不是密钥,你需要像这样使用它:68bkxrlz3#
为当前的Python学生简单编辑代码
编辑:
.title()
方法将输入的任何国家名称转换为标题格式,以便与字典中的命名格式匹配output