Переменные
Сложно представить написание программы без работы с данными, например, числами, текстом или целыми коллекциями. Для того чтобы временно хранить эти данные и иметь возможность многократно использовать их в программе, предназначены переменные.
Переменная представляет собой символическое имя (метку), которое указывает на определенное значение (объект), хранящееся в памяти компьютера. Значение переменной может изменяться в процессе выполнения программы.
Создание переменной и оператор присваивания
Для создания переменной в 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().
|
Функция |
|
|
Описание |
Возвращает уникальный идентификатор (адрес в памяти) объекта |
|
Параметры |
|
|
Возвращаемое значение |
Целое число, представляющее идентификатор объекта |
Например, выведем на экран идентификатор переменной book:
book = "Винни-Пух"
print(id(book))
# Вывод: некоторое целое число, например: 140717426031032
Этот идентификатор является уникальным для данного объекта в текущий момент времени. Но если вы запустите этот код ещё раз, то объект book будет создан заново и вы увидите другое число, например, 1435294094640 или 1792272815408.
У переменных, которые были созданы с помощью каскадного присваивания, будут одинаковые идентификаторы, так как они ссылаются на один и тот же объект в памяти:
book1 = book2 = book3 = "Гамлет"
print(id(book1))
print(id(book2))
print(id(book3))
# Вывод: одинаковое число во всех случаях, например: 140717537114584
Здесь 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 = "База данных школы"
0 комментариев