Python: уроки, справочник и задачи

Переменные и константы в Python

Раздел: Основы Python · Обновлено 31.10.2026

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

Примеры рассчитаны на Python 3.12 и 3.13. Отдельный раздел внизу страницы объясняет модель, которую часто упускают в учебниках: переменная в Python не коробка, а имя, привязанное к объекту. Это знание избавляет от самых коварных багов со списками и словарями.

Переменные и константы в Python
Содержание статьи
  1. Назначение значений переменным в Python
  2. Пример 1. Объявление переменной, и присваивание значения
  3. Пример 2. Изменение значения переменной
  4. Пример 3. Присвоение нескольких значений нескольким переменным
  5. Константа в Python
    1. Пример: Объявление и присвоения значения константе
  6. Переменная как имя объекта: ссылки и изменяемость
    1. Константы с Final и Enum
    2. Частые ошибки с переменными
  7. Частые вопросы
    1. Нужно ли объявлять тип переменной в Python?
    2. Как сделать настоящую константу, которую нельзя изменить?
    3. Чем is отличается от ==?
    4. Какие имена переменных допустимы?

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

chislo = 12 # создали переменную число, и присвоили ей значение 12

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

chislo = 12
chislo = 1.6
print(chislo)
результат:

1.6 # как мы видим у нас при выводе значения переменной, изменилось старое значение 12, на новое 1.6

Назначение значений переменным в Python

В вышеописанном коде, вы наверное уже успели заметить, что вы можете использовать оператор присваивания = для присвоения значения переменной. Ниже мы более подробно рассмотрим объявление, изменение, присваивание нескольких значений и прочее.

Пример 1. Объявление переменной, и присваивание значения

site = "google.com"
print(site)
результат:

google.com

В приведенной программе, мы с вами объявили переменную site, присвоили ему значение google.com, и с помощью функции print() распечатали значение. Важно понимать то, что в Python нам не нужно явно указывать тип данных содержимого в переменной, Python сам понимает где строка, где число.

Пример 2. Изменение значения переменной

site = "google.com"
print(site)

site = "egesoch.cc"
print(site)

Результат:
google.com
egesoch.cc

В данной программе, мы присвоили нашей переменной сначала одно значение, затем, изменили его.

Пример 3. Присвоение нескольких значений нескольким переменным

a, b, c = 10, 1.2, "hello world" # Объявляя переменные через запятую, мы так же можем объявлять нужные значения в нужном порядке через запятую, и в результате мы получим, то, что у каждой переменной свое значение в соответствии с указанным порядком

print(a)
print(b)
print(c)

Рассмотрим еще один пример:

a = b = c = "hello" # всем переменным в данном случае присвоится строка "hello"
print(a)
print(b)
print(c)

Константа в Python

Ранее мы говорили о переменных, как о коробках в которых содержаться данные, и в случае с переменными, мы всегда можем получить содержимое, и так же его менять. Так вот, Константа это примерно тоже самое, но, значение константы не меняется. Значение константы постоянное - это нужно запомнить.

Пример: Объявление и присвоения значения константе

Откройте свой Pycharm, и создайте файл constanta.py, затем в созданном файле, объявите константу, как в примере ниже.

PI = 3.14 # В качестве значения присвоим число ПИ
GRAVIT = 9.8 # Ускорение свободного падения, м/с2

Теперь создайте еще один файл main.py

import constanta # Импортируем раннее созданный constanta.py

print (constanta.PI) # Печатаем значение ранее объявленной константы
print (constanta.GRAVIT) # Печатаем значение ранее объявленной константы

результат:
3.14
9.8

Еще немного о константах в Python. На самом деле, в Python нет отдельного понимания константы, мы обозначаем название константы заглавными буквами для того, что бы отличить их от обычных переменных, и это никак не помешает переопределить значение.

Следующий урок: Типы данных в Python 3

Переменная как имя объекта: ссылки и изменяемость

Сравнение с коробкой удобно на первых шагах, но оно неточное. В Python переменная - это имя, которое указывает на объект в памяти. Присваивание b = a не копирует данные, а создает второе имя для того же объекта.

a = [1, 2, 3]
b = a            # второе имя того же списка
b.append(4)
print(a)         # -> [1, 2, 3, 4]
print(a is b)    # -> True

c = a.copy()     # новый список
c.append(5)
print(a)         # -> [1, 2, 3, 4]
print(c)         # -> [1, 2, 3, 4, 5]

С числами и строками такой проблемы нет: они неизменяемые, и любая операция создает новый объект. Поэтому x = 5; y = x; y += 1 не меняет x.

Та же модель объясняет поведение функций. Когда вы передаете список в функцию, параметр становится еще одним именем того же объекта, и метод append() внутри функции изменит список снаружи. Если функция должна работать с копией, создайте ее явно. Учтите, что copy() делает поверхностную копию: вложенные списки по-прежнему общие, для полной копии нужен copy.deepcopy(). Проверить, указывают ли два имени на один объект, помогают оператор is и функция id().

ТипИзменяемыйЧто произойдет при b = a и изменении b
int, float, str, tupleнетb получит новый объект, a не изменится
list, dict, setдаизменения видны через оба имени

Константы с Final и Enum

Запись заглавными буквами только договоренность. Чтобы инструменты проверки ловили случайное переопределение, добавьте аннотацию Final:

from typing import Final
MAX_USERS: Final = 100
TIMEOUT_SEC: Final[float] = 2.5
MAX_USERS = 200   # Python выполнит, но mypy и PyCharm покажут ошибку

Для набора связанных значений лучше подходит перечисление. Его члены нельзя переприсвоить даже во время выполнения:

from enum import Enum

class Color(Enum):
    RED = "#ff0000"
    GREEN = "#00ff00"

print(Color.RED.value)   # -> #ff0000
Color.RED = "blue"       # AttributeError

Частые ошибки с переменными

Какие типы может хранить переменная, разобрано в статье Типы данных в Python 3.

Частые вопросы

Здесь собраны вопросы, с которыми обычно сталкиваются на практике, и короткие ответы на них.

Нужно ли объявлять тип переменной в Python?

Нет, тип определяется по значению во время выполнения, и одна переменная может последовательно ссылаться на число и строку. Аннотация вроде count: int = 0 необязательна и служит подсказкой для редактора и анализаторов.

Как сделать настоящую константу, которую нельзя изменить?

Встроенного механизма для обычных имен нет. На практике используют Final для проверки анализатором, Enum для наборов значений и неизменяемые типы вроде кортежа или frozenset, чтобы содержимое не меняли случайно.

Чем is отличается от ==?

== сравнивает значения, is проверяет, что оба имени указывают на один и тот же объект. Для чисел и строк используйте ==, а is применяйте для None, True и False.

Какие имена переменных допустимы?

Имя начинается с буквы или подчеркивания, дальше идут буквы, цифры и подчеркивания. Регистр важен, ключевые слова запрещены. По PEP 8 переменные пишут в snake_case латиницей, например user_count.