/
Программирование
/
Курс Python
/

Что такое переменная

Python: Что такое переменная

Представьте, что нужно напечатать фразу Father! два раза:

print('Father!')
print('Father!')

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

А что будет, если фразу нужно изменить, например заменить Father! на Mother!? Придется искать и исправлять все вхождения вручную. Это неудобно и приводит к ошибкам.

Переменные

Чтобы не дублировать одну и ту же строку, ее можно сохранить в переменной и распечатывать ее содержимое:

greeting = 'Father!'

print(greeting)
print(greeting)

Результат:

Father!
Father!

Определение переменной

Переменная представляет собой имя, за которым хранится значение. В нашем примере мы создали переменную с именем greeting и записали в нее строку 'Father!'.

greeting = 'Father!'

Переменная       Значение
┌──────────┐     ┌──────────┐
│ greeting │ ──→ │ 'Father!'│
└──────────┘     └──────────┘

Строчка greeting = 'Father!' читается так: "возьми значение 'Father!' и присвой его переменной с именем greeting". Знак = здесь является оператором присваивания, а не обозначением равенства как в математике. Он кладет значение в переменную.

Когда мы пишем print(greeting), интерпретатор подставляет вместо имени greeting то значение, которое в ней хранится. В результате на экран выводится строка 'Father!'.

print(greeting)
      |
      v
print('Father!')

Имена переменных

Имена переменных придумывает сам программист. В Python можно использовать:

  • Латинские буквы (a-z, A-Z),
  • цифры (но не в начале),
  • нижнее подчеркивание _.

Примеры допустимых имен: greeting, name1, hello_world. Python различает строчные и заглавные буквы. Переменные greeting, Greeting и GREETING являются тремя разными переменными.

Переменные и литералы

В коде важно различать, где мы используем переменную, а где записываем значение напрямую. Это особенно заметно на примере с print():

greeting = 'Mother!'
print(greeting)   # => Mother!
print('greeting') # => greeting

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

Литералы представляют собой данные, записанные явно (например, 'Hello', 42, 3.14). Идентификаторы являются именами переменных и функций (например, greeting, print), которые указывают на уже существующие значения или команды.

Порядок использования

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

print(name) # Ошибка: переменная еще не определена
# NameError: name 'name' is not defined
name = 'Alice'

Такая ошибка называется "обращение к необъявленной переменной". Ее достаточно легко исправить, потому что текст ошибки однозначно говорит о том, какая переменная используется до объявления.

А в правильном порядке все работает:

name = 'Alice'
print(name) # => Alice

Несколько переменных в программе

В одной программе можно создать сколько угодно переменных. Каждая хранит свои данные и не мешает другим:

greeting1 = 'Father!'
print(greeting1)
print(greeting1)

greeting2 = 'Mother!'
print(greeting2)
print(greeting2)

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

Где создавать переменные

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

Задание

URL сайта используется в программе в нескольких местах. Чтобы не дублировать строку, сохраним ее в переменную.

Создайте переменную url со значением https://hexlet.io и выведите ее на экран дважды.

Полезное

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются