- Переменные
- Имена переменных
- Переменные и литералы
- Порядок использования
- Несколько переменных в программе
- Где создавать переменные
Представьте, что нужно напечатать фразу Father! два раза:
print('Father!')
print('Father!')
Такой способ вполне подойдёт, если фраза встречается всего пару раз. Но что, если она будет использоваться часто, в разных частях программы? Тогда придётся копировать одно и то же выражение снова и снова.
А что будет, если фразу нужно изменить — например, заменить Father! на Mother!? Придётся искать и исправлять все вхождения вручную. Это неудобно и приводит к ошибкам.
Переменные
Чтобы не дублировать одну и ту же строку, её можно сохранить в переменной и распечатывать ее содержимое:
greeting = 'Father!'
print(greeting)
print(greeting)
Результат:
Father!
Father!
Переменная — это имя, за которым хранится значение. В нашем примере мы создали переменную с именем greeting
и записали в неё строку 'Father!'
.
Строчка greeting = 'Father!'
читается так: «возьми значение 'Father!'
и присвой его переменной с именем greeting
». Знак =
здесь не означает равенство, как в математике, а является оператором присваивания. Он кладёт значение в переменную.
Когда мы пишем print(greeting)
, интерпретатор подставляет вместо имени greeting
то значение, которое в ней хранится. В результате на экран выводится строка '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(something)
без создания самой переменной something
? Интерпретатор выдаст ошибку, что мы пытаемся использовать переменную, которая не определена. Переменную от строки он отличает по наличию или отсутствию кавычек.
Порядок использования
Переменную нужно сначала создать (присвоить ей значение), а уже потом использовать. Если попытаться обратиться к переменной до её создания, программа выдаст ошибку:
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)
Как понять когда нужно несколько переменных? Количество переменных зависит от логики программы. Эта тема подробно раскрывается позже, когда мы столкнемся с функциями, условными конструкциями
Где создавать переменные
Программисты стараются создавать переменные ближе к месту, где они используются. Это делает код более читаемым. Особенно важно это в больших программах, где переменных может быть десятки и сотни тысяч.