Работа со
словарями
113
Посмотрим, что произойдет при запросе количества очков для пришельца, для
которого оно не задано:
alien_no_points.py
alien_0 = {'color': 'green', 'speed': 'slow'}
print(alien_0['points'])
На экране появляется трассировка
с сообщением об ошибке
KeyError
:
Traceback (most recent call last):
File "alien_no_points.py", line 2, in
print(alien_0['points'])
KeyError: 'points'
Более общие способы обработки подобных ошибок рассматриваются в главе 10.
Конкретно для словарей можно воспользоваться методом
get()
для назначения
значения по умолчанию, которое будет возвращено при отсутствии заданного
ключа в словаре.
В первом аргументе метода
get()
передается ключ. Во втором необязательном ар-
гументе можно передать значение, которое должно возвращаться при отсутствии
ключа:
alien_0 = {'color': 'green', 'speed': 'slow'}
point_value = alien_0.get('points', 'No point value assigned.')
print(point_value)
Если ключ
'points'
существует в словаре, вы получите соответствующее значение;
если нет — будет получено значение по умолчанию. В данном случае ключ
'points'
не существует, поэтому вместо ошибки выводится понятное сообщение:
No point value assigned.
Если есть вероятность того, что запрашиваемый ключ не существует, возможно,
стоит использовать метод
get()
вместо синтаксиса с квадратными скобками.
ПРИМЕЧАНИЕ
Если второй аргумент при вызове
get()
опущен, а ключ не существу-
ет, то Python вернет специальное значение
None
— признак того, что значение не суще-
ствует . Это не ошибка, а специальное значение, указывающее на отсутствие значения .
Другие применения
None
описаны в главе 8 .
Достарыңызбен бөлісу: