Предотвращение ошибок в именах при использовании переменных

We use cookies. Read the Privacy and Cookie Policy

Каждый программист совершает ошибки, а большинство программистов ошибается ежедневно. И хотя даже опытный программист не застрахован от ошибок, он знает, как эффективно реагировать на них. Рассмотрим типичную ошибку, которую вы довольно часто будете совершать на первых порах, и выясним, как ее исправить.

Для начала напишем код с намеренно внесенной ошибкой. Введите следующий фрагмент (неправильно написанное слово mesage выделено жирным шрифтом):

message = "Hello Python Crash Course reader!"

print(mesage)

Когда в программе происходит ошибка, интерпретатор Python всеми силами старается помочь вам в поиске причины. Если программа не выполняется нормально, интерпретатор предоставляет данные трассировки — информацию о том, в каком месте кода находился интерпретатор при возникновении проблем. Ниже приведен пример трассировки, которую выдает Python после случайной опечатки в имени переменной:

Traceback (most recent call last):

(1) File "hello_world.py", line 2, in <module>

(2) . . print(mesage)

(3) NameError: name 'mesage' is not defined

Строка (1) сообщает, что ошибка произошла в строке 2 файла hello_world.py. Интерпретатор выводит номер строки, чтобы вам было проще найти ошибку (2), и сообщает тип обнаруженной ошибки (3). В данном случае была обнаружена ошибка в имени: переменная с указанным именем (mesage) не определена. Другими словами, Python не распознает имя переменной. Обычно такие ошибки возникают в том случае, если вы забыли присвоить значение переменной перед ее использованием или ошиблись при вводе имени.

Конечно, в данном примере в имени переменной во второй строке пропущена буква s. Интерпретатор Python не проверяет код на наличие опечаток, но следит за тем, чтобы имена переменных записывались одинаково. Например, вот что происходит, если имя message будет неправильно записано еще в одном месте кода:

mesage = "Hello Python Crash Course reader!"

print(mesage)

На этот раз программа выполняется успешно!

Hello Python Crash Course reader!

Компьютеры не отличаются гибкостью, но орфография их совершенно не волнует. Как следствие, вам не нужно следить за тем, чтобы в именах переменных идеально соблюдались правила орфографии английского языка.

Многие ошибки программирования сводятся к простым опечаткам – случайной замене одного символа в одной строке программы. Если вы потратили много времени на поиск одной из таких ошибок, знайте, что вы не одиноки. Многие опытные и талантливые программисты тратят долгие часы на поиск подобных мелких ошибок. Нечто подобное будет часто происходить в ходе вашей работы – поэтому просто посмейтесь и идите дальше.

примечание

Как лучше всего освоить новые концепции программирования? Попытайтесь использовать их в своей программе. Если в ходе работы над упражнением вы зайдете в тупик, попробуйте на какое-то время заняться чем-нибудь другим. Если это не поможет, перечитайте соответствующую часть этой главы. Если и это не помогло, обращайтесь к рекомендациям из приложения В.

Упражнения

Напишите отдельную программу для выполнения каждого из следующих упражнений. Сохраните каждую программу в файле, имя которого подчиняется стандартным правилам Python по использованию строчных букв и символов подчеркивания – например, simple_message.py и simple_messages.py.

2-1. Простое сообщение: сохраните текстовое сообщение в переменной и выведите его на экран.

2-2. Простые сообщения: сохраните сообщение в переменной и выведите это сообщение. Затем замените значение переменной другим сообщением и выведите новое сообщение.