Сложно представить написание программы без работы с данными, например, числами, текстом или целыми коллекциями. Для того чтобы временно хранить эти данные и иметь возможность многократно использовать их в программе, предназначены переменные.

Переменная представляет собой символическое имя (метку), которое указывает на определенное значение (объект), хранящееся в памяти компьютера. Значение переменной может изменяться в процессе выполнения программы.

Создание переменной и оператор присваивания

Для создания переменной в Python необходимо присвоить ей некоторое значение с помощью оператора присваивания =. Этот оператор работает следующим образом: значение, находящееся справа от символа =, записывается (присваивается) переменной, имя которой указано слева.

название_переменной = значение_переменной

То есть оператор присваивания связывает имя переменной с некоторым значением.

В программировании операторы выполняют определенные действия (операции) над данными, которые называются операндами. Рассмотрим пример:

message = "Привет, мир!"

Здесь оператор = связывает переменную message со строкой "Привет, мир!".

Способы присваивания значения переменным

Python поддерживает разные типы данных, например, строки и числа. При этом строки заключаются в кавычки:

first_name = "Иван"
last_name = "Рюрикович"

Целые и вещественные числа, наоборот, указываются без кавычек:

year = 2024
weight = 60.5

Значением переменной может быть не только конкретное значение, но и результат вычисления какого-либо выражения:

year = 2024 + 1

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

month, day = 1, 18
print(month)
# Вывод: 1
print(day)
# Вывод: 18

Это часто используется для обмена значениями переменных:

day, month = month, day

Теперь в переменной day хранится значение month и наоборот:

print(month)
# Вывод: 18
print(day)
# Вывод: 1

Кроме того, можно присвоить одно и то же значение нескольким переменным одновременно, используя каскадное присваивание:

hours = minutes = seconds = 10

Значения таких переменных совпадают:

print(hours)
# Вывод: 10
print(minutes)
# Вывод: 10
print(seconds)
# Вывод: 10

Как создаются переменные в Python?

Рассмотрим создание переменной с именем book и строковым значением "Приключения Шерлока Холмса":

book = "Приключения Шерлока Холмса"

Здесь мы как бы говорим Python: «Создай в памяти место для хранения текста "Приключения Шерлока Холмса" и свяжи это место с именем book». Это похоже на то, что мы взяли коробку, написали на ней book и положили внутрь книгу "Приключения Шерлока Холмса". Позже мы можем присвоить этой же переменной другое значение:

book = "Винни-Пух"

Тогда «книга» в «ящике» book заменится на "Винни-Пух".

Однако на самом деле переменная в Python – это не сам «ящик» с данными, а ссылка на него. Когда мы присваиваем значение переменной, Python создает в памяти объект, представляющий это значение, а переменная просто указывает на этот объект.

Робот Кеша читает

В Python любые данные – будь то числа, строки, списки или функции – представляют собой объекты. Каждый объект характеризуется тремя основными параметрами: идентификатором (уникальным номером), типом (например, число, строка) и значением (содержанием).

У каждого объекта есть свой идентификатор – уникальный номер, представляющим собой адрес этого объекта в памяти компьютера. Узнать уникальный идентификатор объекта в памяти компьютера позволяет функция id().

Функция

id(object)

Описание

Возвращает уникальный идентификатор (адрес в памяти) объекта

Параметры

  • object – объект, идентификатор которого требуется получить

Возвращаемое значение

Целое число, представляющее идентификатор объекта

Например, выведем на экран идентификатор переменной book:

book = "Винни-Пух"
print(id(book))  
# Вывод: некоторое целое число, например: 140717426031032

Этот идентификатор является уникальным для данного объекта в текущий момент времени. Но если вы запустите этот код ещё раз, то объект book будет создан заново и вы увидите другое число, например, 1435294094640 или 1792272815408.

У переменных, которые были созданы с помощью каскадного присваивания, будут одинаковые идентификаторы, так как они ссылаются на один и тот же объект в памяти:

book1 = book2 = book3 = "Гамлет"
print(id(book1))
print(id(book2))
print(id(book3))
# Вывод: одинаковое число во всех случаях, например: 140717537114584

Image Gallery

На один объект может ссылаться несколько переменных

Здесь book1, book2 и book3 – это просто три разных имени, указывающих на одну и ту же область памяти, где хранится строка "Гамлет".

Правила именования переменных

Правильный выбор имен для переменных – важная часть написания читаемого и поддерживаемого кода. В Python существуют определенные правила, которым должны соответствовать имена переменных:

1. Имя переменной может содержать только латинские буквы, цифры и символ подчеркивания (_):

quiz1 = "Сколько звёзд на небе?"
do_it_again = "Функция, которая делает что-то важное"

2. Имя переменной не может начинаться с цифры:

# Так делать нельзя
1book = "Слово о полку Игореве"  # Не может начинаться с цифры

3. Пробелы, точки и другие специальные символы недопустимы:

# Так делать нельзя
customer.age = 23  # Имя не может содержать точку
user email = "romanov@mail.ru"  # Имя не может содержать пробел

Имя переменной не может совпадать с ключевыми словами Python – зарезервированными словами, которые имеют специальное значение в языке:

False, None, True, and, as, assert, async, await, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield

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

# Так делать нельзя
class = "Бобовые"  # Не может совпадать с ключевыми словами

5. Переменные, состоящие из нескольких слов, принято именовать в змеином регистре (англ. – snake case). Слова в таком стиле пишутся строчными буквами и разделяются символами подчеркивания:

custom_age = 23
user_email = "romanov@romanoff.ru"
number_of_apples = 12

Имя переменной должно быть осмысленным и отражать ее назначение. Хорошие имена делают код более понятным и уменьшают необходимость в комментариях. Вместо того чтобы использовать короткие и непонятные имена (например, x, n, val), старайтесь давать переменным описательные имена (например, customer_name, item_count, total_price):

height = 180  # Лучше, чем h или my_big_tower
number_of_students = 25  # Лучше, чем n или ihwer8

Примеры

Пример 1. Данные о пользователе на сайте

В профиле на сайте пользователь указывает имя, электронную почту и возраст. Переменные позволяют не только хранить эти данные, но и изменять их:

# Создаем переменные для хранения данных пользователя
user_name = "Екатерина"  # Имя (строка)
user_email = "catherine@mail.ru"  # Почта (строка)
user_age = 28  # Возраст (целое число)
 
# Выводим данные о пользователе
print("Имя:", user_name)
print("Почта:", user_email)
print("Возраст:", user_age)
 
# Допустим, пользователь решил обновить свою почту
user_email = "catherine_the_great@mail.ru"  # Новая почта (строка)
# Выводим информацию об изменении почты
print("Почта пользователя", user_name, "изменена на", user_email)

Вывод:

Имя: Екатерина
Почта: catherine@mail.ru
Возраст: 28
Почта пользователя Екатерина изменена на catherine_the_great@mail.ru

Пример 2. Расчет стоимости заказа в интернет-магазине

В интернет-магазине общая стоимость заказа складывается из суммы стоимостей каждого товара с учётом его количества:

# Цены и количество товаров в заказе
price_yogurt = 56.5  # Цена йогурта за штуку (число с плавающей точкой)
price_chocolate = 98 # Цена шоколадки за штуку (целое число)
count_yogurt = 5   # Количество йогурта (целое число)
count_chocolate = 3  # Количество шоколадок (целое число)

# Рассчитываем стоимость каждого типа товара
total_yogurt_cost = price_yogurt * count_yogurt
total_chocolate_cost = price_chocolate * count_chocolate
 
# Рассчитываем общую стоимость заказа
total_order_cost = total_yogurt_cost + total_chocolate_cost
print(f"Общая стоимость заказа:", total_order_cost) 

Здесь значение переменной total_order_cost является результатом арифметического выражения, включающего другие переменные.

Вывод:

Общая стоимость заказа: 576.5

Пример 3. Обмен значениями координат точки

В двумерной координатной системе точка задана координатами x и y, которые необходимо поменять местами. Python позволяет это сделать в одно действие с помощью множественного присваивания:

# Задаём координаты точки
x = 10
y = 20
# Выводим на экран исходные координаты
print("Исходная координата x:", x)
print("Исходная координата y:", y)
 
# Используем множественное присваивание и меняем значения местами
# Теперь в x будет значение y, а в y - x
x, y = y, x
# Выводим на экран новые координаты
print("Новая координата x:", x)
print("Новая координата y:", y)

Вывод:

Исходная координата x: 10
Исходная координата y: 20
Новая координата x: 20
Новая координата y: 10

При этом классически задачу обмена значений двух переменных решают через временную (промежуточную) переменную:

# Задаём координаты точки
x = 10
y = 20
# Выводим на экран исходные координаты
print("Исходная координата x:", x)
print("Исходная координата y:", y)
 
# Не используем множественное присваивание, а создаём новую переменную
# temp хранит значение x, которое затем присваивается y
temp = x
x = y
y = temp
# Выводим на экран новые координаты
print("Новая координата x:", x)
print("Новая координата y:", y)

Итоги

  • Переменная – это символическое имя, которое ссылается на определенное значение, хранящееся в памяти компьютера.
  • Создание переменной: происходит с помощью оператора присваивания =, который связывает имя переменной со значением.
  • В Python переменная – это ссылка на объект в памяти. При этом несколько переменных могут ссылаться на один и тот же объект.
  • Функция id() позволяет узнать уникальный идентификатор объекта в памяти компьютера.
  • Имена переменных должны быть осмысленными и могут содержать только латинские буквы, символ нижнего подчеркивания и цифры. При этом имя не может начинаться с цифры.

Задания для самопроверки

1. Что такое переменная в Python?

Именованная ссылка на объект в памяти компьютера.

2. Как создать переменную password со значением "qwerty"?

password = "qwerty"

3. Как одновременно создать несколько переменных movie1, movie2 и movie3 с одинаковым значением "300 спартанцев"?

movie1 = movie2 = movie3 = "300 спартанцев"

4. Что будет выведено на экран в результате выполнения данного кода?

like = "Яблоки"
dislike = "Груши"
like, dislike = dislike, like
print(like)
Груши

5. Совпадают ли идентификаторы следующих переменных?

game = book = movie = "Assassin's Creed"

Да, так как они созданы с помощью каскадного присваивания и ссылаются на один объект в памяти компьютера.

6. Исправьте ошибки в именах переменных:

1group = "Ромашки"
True = "Истина в вине"
пользователь = "flower"
custom settings = "Дополнительные настройки"
school.database = "База данных школы"
group_1 = "Ромашки"
truth = "Истина в вине"
user = "flower"
custom_settings = "Дополнительные настройки"
school_database = "База данных школы"