Ошибка клавиши Python — это ошибка, которая возникает во время выполнения программы. Она происходит, когда вы пытаетесь получить доступ к ключу, которого нет в словаре. Эта ошибка останавливает работу программы.

Важно уметь обрабатывать такие ошибки, как и любые другие ошибки в программе. Для этого можно использовать конструкцию try-except. Она позволяет программе продолжить выполнение следующей операции и не останавливает её работу.

Также существует функция get(), которую можно вызвать в словаре. Она позволяет избежать ошибки, если нужного ключа нет в словаре.

Блок try-except

Чтобы обработать эту ошибку, вы можете использовать блок try-except, но сначала позвольте мне показать вам ошибку.

users = {'name':'Kevin', 'age':30, 'city':'Chicago'}

В словаре «Пользователи» есть поля: ключ, имя, возраст и город. Если вы попытаетесь получить доступ к полю «адрес», то увидите ошибку, как показано ниже.

print(users['address'])

Блок try-except

Из вывода вы можете видеть, что при попытке доступа к ключу «адрес» из словаря «пользователи» отображается ошибка KeyError: «адрес». Эта ошибка указывает на то, что ключ «адрес» не существует.

Чтобы правильно обработать эту ошибку, она должна отображать не эту ошибку, а правильное сообщение, не останавливая выполнение программы. Для этого вы можете использовать блок try-кроме, как показано ниже.

try :
  users = {'name':'Kevin', 'age':30, 'city':'Chicago'}

  print(users['address'])
except KeyError:
  print("The key you are trying to access doesn't exist.")

Блок try-except

Судя по приведённому выше выводу, ошибка обрабатывается корректно. Если указанный ключ отсутствует в словаре, выводится сообщение: «Ключ, к которому вы пытаетесь получить доступ, не существует».

В разделе try вы всегда определяете логику кода, которую хотите выполнить. Например, когда вы пытаетесь создать словарь «пользователи», вы получаете доступ к этому пользователю как к «этому пользователю» [‘адрес’].

После этого секция исключений обрабатывает ошибку. В ней после ключевого слова «кроме» указывается тип ошибки — KeyError. Затем в блоке исключений указывается сообщение, которое будет выводиться на терминале каждый раз, когда возникает исключение KeyError.

С использованием метода get()

В Python есть метод get(), который позволяет получить значение из словаря по указанному ключу. Если указанного ключа нет в словаре, метод вернёт значение «None».

Рассмотрим словарь «пользователи», который мы создали ранее.

users = {'name':'Kevin', 'age':30, 'city':'Chicago'}

Для начала позвольте продемонстрировать вам, как работает метод get(). Возьмём, к примеру, следующий код, который позволяет получить доступ к значению ключа «город».

print(users.get('city'))

С использованием метода get()

Посмотрите на изображение. Если пользователи словаря вызовут функцию get(‘city’), она вернёт значение ключа ‘city’, то есть слово «Чикаго». Если мы попытаемся получить доступ к ключу, которого нет в словаре, то функция вернёт значение None.

print(users.get('gender')

Исключение Python Keyerror с использованием метода get()

Посмотрите на результат: когда вы пытаетесь получить доступ к несуществующему ключу «пол», метод `get()` возвращает `None`, но при этом не возникает ошибка типа «KeyError». Даже используя метод `get()`, вы можете обработать эту ситуацию, указав сообщение для клиента.

Для этого метод `get()` принимает второй аргумент, который называется «значение». Это значение будет отображаться, если указанный ключ не существует в словаре.

Например, вы можете изменить код следующим образом:

print(users.get('gender', "The specified key doen't exist"))

Исключение Python Keyerror с использованием метода get(), чтобы избежать ошибки

Из выходных данных видно, что если указанный ключ «пол» не найден, то отображается пользовательское сообщение «Указанный ключ не существует».

Чтобы избежать ошибки, возникающей при попытке получить значение по несуществующему ключу в словаре, можно использовать метод get().

Надеюсь, из этих примеров вам стало понятно, как обрабатывать ошибку KeyError, которая возникает при попытке обратиться к несуществующему ключу в словаре.

Добавить комментарий