В этом уроке разберемся, как работать с переменными в Python, какие ошибки часто допускают неопытные разработчики и как их исправлять.
Представьте, что нам нужно напечатать на экран фразу Father! два раза. Эту задачу можно решить так:
print('Father!')
print('Father!')
В простейшем случае так и стоит поступить. Но если фраза Father! будет использоваться чаще двух раз, да еще и в разных частях программы, то придется ее везде повторять — это неудобно. Проблемы с таким подходом начнутся, когда понадобится изменить фразу, а такое происходит довольно часто. Нам придется найти все места с этой фразой и выполнить необходимую замену.
А можно поступить по-другому. Чтобы не копировать выражение, достаточно создать с ним переменную:
# greeting - переводится как приветствие
greeting = 'Father!'
print(greeting)
print(greeting)
# => Father!
# => Father!
В строчке greeting = 'Father!'
мы берем переменную с именем greeting
и присваиваем ей значение 'Father!'
. Переменная указывает на данные, которые в нее записали. Благодаря этому, данные можно использовать многократно и не дублировать их постоянно.
Когда переменная создана, можно ее использовать. Она подставляется в те места, где раньше стояла наша фраза. Когда код выполняется, интерпретатор доходит до строчки print(greeting)
и подставляет содержимое переменной, а затем выполняет код.
Для имени переменной используется любой набор допустимых символов, к которым относятся буквы английского алфавита, цифры и знак _
. При этом цифру нельзя ставить в начале. Имена переменных регистрозависимы, то есть имя hello
и имя HELLO
— это два разных имени для двух разных переменных. Регистр в Python имеет важное значение, никогда не забывайте про него.
Количество создаваемых переменных неограниченно. Большие программы содержат десятки и сотни тысяч имен переменных. Вот как выглядят две переменные внутри одной программы:
greeting1 = 'Father!'
print(greeting1)
print(greeting1)
greeting2 = 'Mother!'
print(greeting2)
print(greeting2)
Чтобы программу было удобно читать, среди программистов принято создавать переменные как можно ближе к тому месту, где они используются. Теперь нужно разобраться, как их изменять.
Само слово «переменная» подсказывает, что ее можно менять. И действительно, со временем внутри программы значения переменных могут изменяться.
Например:
# greeting - переводится как приветствие
greeting = 'Father!'
print(greeting) # => Father!
greeting = 'Mother!'
print(greeting) # => Mother!
Имя осталось тем же, но внутри появились другие данные. Отметим, что переменные в Python не требуют специального объявления. Вместо этого переменная объявляется, когда ее впервые используют в программе.
Переменные — мощная и в то же время рисковая вещь. Нельзя сразу с уверенностью сказать, что внутри нее записано — сначала надо проанализировать код, который находится перед переменной. Именно этим занимаются разработчики во время отладки, когда пытаются разобраться, почему программа работает не так, как задумано.
Порядок инструкций в коде с переменными имеет огромное значение. Поэтому переменную нужно определить до первого использования. Ниже пример ошибки, которую часто допускают новички:
print(greeting)
greeting = 'Father!'
Запуск программы выше завершается с ошибкой NameError: name 'greeting' is not defined
— это ошибка обращения. Это значит, что в коде используется имя (идентификатор), которое пока не определено. Это говорится в самом тексте ошибки: 'greeting' is not defined
. Кроме неправильного порядка действий, в Python встречаются банальные опечатки в имени переменной. Это происходит и когда переменная используется, и когда ее объявляют.
Количество подобных ошибок можно уменьшить, если использовать правильно настроенный редактор. Он предупреждает о возможных проблемах и подсвечивает переменные, которые используются без объявления.
С переменными мы разобрались. Можно переходить к данным, которые никогда не меняются.
Некоторые данные никогда не меняются — например, математические постоянные. Возьмем для примера число π. Оно всегда равно 3.14 и не может измениться. Чтобы обратиться к подобным данным, в Python используют константы:
PI = 3.14
print(PI) # => 3.14
Константа создается так же, как переменная. Разница только в том, что константы принято именовать заглавными буквами и с _
в качестве разделителя между словами. Константа, как и переменная, может использоваться в любом выражении.
Вам ответят команда поддержки Хекслета или другие студенты.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт