Как стать автором
Обновить

Переменные в Python: полное руководство для начинающих

Уровень сложностиПростой

Что такое переменные и зачем они нужны

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

Главные преимущества переменных:

  1. Повторное использование данных — один раз сохранили значение и используем многократно

  2. Читаемость кода — осмысленные имена переменных делают программу понятнее

  3. Упрощение изменений — меняем значение в одном месте, а не во всём коде

Как Python работает с переменными

Python использует систему ссылок для работы с переменными:

  • Переменная - это имя, ссылающееся на объект в памяти

  • Один объект может иметь несколько имён

  • Присваивание создаёт новую ссылку, а не копию объекта

  • Сборщик мусора удаляет объекты, на которые нет ссылок

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

Синтаксис создания переменных в Python прост и интуитивно понятен:

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

Примеры:

age = 25                   # Возраст
name = "Алексей"           # Имя
temperature = 36.6         # Температура
is_raining = False         # Идёт ли дождь

Python автоматически определяет тип переменной на основе присвоенного значения. Это называется динамической типизацией.

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

  1. Допустимые символы:

    • Буквы (a-z, A-Z)

    • Цифры (0-9), но не в начале имени

    • Знак подчёркивания (_)

  2. Недопустимые символы:

    • Специальные символы (@, #, $, % и др.)

    • Пробелы

    • Дефисы (-)

  3. Регистр букв имеет значение: AgeAGE и age — три разные переменные.

  4. Запрещённые имена — нельзя использовать ключевые слова Python:

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

Примеры правильных и неправильных имён:

✅ Правильно:

user_age = 30
player_score = 100
MAX_SIZE = 1024

❌ Неправильно:

2players = 4      # Начинается с цифры
user-name = "Alex" # Содержит дефис
class = "10A"     # Ключевое слово

Основные типы переменных

Python поддерживает несколько основных типов данных:

  1. Числовые типы:

    • int — целые числа (42, -10, 0)

    • float — числа с плавающей точкой (3.14, -0.001)

    • complex — комплексные числа (3+4j)

  2. Строки (str):

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

Логический тип (bool):

is_active = True
has_permission = False
  1. Коллекции:

    • Списки (list): [1, 2, 3]

    • Кортежи (tuple): (1, 2, 3)

    • Множества (set): {1, 2, 3}

    • Словари (dict): {"name": "Alice", "age": 25}

Динамическая типизация

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

x = 10          # x — целое число (int)
x = "десять"    # теперь x — строка (str)
x = [1, 2, 3]   # теперь x — список (list)

Узнать текущий тип переменной можно с помощью функции type():

print(type(x))  # Выведет <class 'list'>

Работа с переменными

Множественное присваивание

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

a, b, c = 1, 2, 3       # Разные значения
x = y = z = 0           # Одно значение для всех
name, age = "Мария", 30 # Комбинация разных типов

Константы

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

PI = 3.14159
MAX_USERS = 100

Удаление переменных

Для освобождения памяти можно удалить переменную с помощью del:

x = 10
del x
print(x)  # Вызовет ошибку NameError

Практические примеры

Пример 1: Простые вычисления

Расчёт площади прямоугольника

length = 10
width = 5
area = length * width
print(f"Площадь: {area}")  # Площадь: 50

Пример 2: Работа со строками

first_name = "Иван"
last_name = "Петров"
full_name = f"{first_name} {last_name}"
print(f"Здравствуйте, {full_name}!")  # Здравствуйте, Иван Петров!

Пример 3: Обмен значений

a = 5
b = 10
a, b = b, a  # Обмен значениями без временной переменной
print(a, b)  # 10 5

Пример 4: Обработка пользовательских данных

# Ввод данных пользователя
user_data = {
    "name": input("Введите ваше имя: "),
    "age": int(input("Введите ваш возраст: ")),
    "email": input("Введите ваш email: ")
}

# Форматированный вывод
print(f"""
Данные пользователя:
Имя: {user_data['name']}
Возраст: {user_data['age']}
Email: {user_data['email']}
""")

Пример 5: Работа с разными типами данных

# Создание коллекций
numbers = [1, 2, 3, 4, 5]          # Список
coordinates = (50.45, 30.52)       # Кортеж
unique_numbers = {1, 2, 3, 3, 4}   # Множество (дубли удаляются)
person = {"name": "Anna", "age": 28} # Словарь

# Операции с коллекциями
numbers.append(6)                  # Добавление элемента
# coordinates[0] = 51.23          # Ошибка: кортеж неизменяем
unique_numbers.add(5)              # Добавление в множество
person["city"] = "Kyiv"            # Добавление в словарь

Схема хранения переменных в памяти

[ Переменная ]       [ Значение в памяти ]
   name      ----->    "Алексей" (str)
   age       ----->    25 (int)
   scores    ----->    [90, 85, 95] (list)

Таблица основных типов данных

Тип данных

Пример

Изменяемость

Описание

int

42

Нет

Целые числа

float

3.14

Нет

Числа с плавающей точкой

str

"Привет"

Нет

Строки текста

bool

True

Нет

Логические значения

list

[1, 2, 3]

Да

Упорядоченные коллекции

tuple

(1, 2, 3)

Нет

Неизменяемые списки

dict

{"key": "value"}

Да

Пары ключ-значение

set

{1, 2, 3}

Да

Уникальные элементы

Области видимости переменных

global_var = "Я глобальная"

def my_function():
    local_var = "Я локальная"
    print(global_var)  # Доступна
    print(local_var)   # Доступна
    
my_function()
print(global_var)  # Доступна
# print(local_var) # Ошибка - не доступна вне функции

Копирование vs присваивание

# Присваивание (обе переменные ссылаются на один объект)
list1 = [1, 2, 3]
list2 = list1
list2.append(4)
print(list1)  # [1, 2, 3, 4] - изменилась и list1!

# Копирование (создаётся новый объект)
import copy
list1 = [1, 2, 3]
list2 = copy.deepcopy(list1)
list2.append(4)
print(list1)  # [1, 2, 3] - list1 не изменилась

Аннотации типов

def greet(name: str, age: int) -> str:
    return f"Привет, {name}! Тебе {age} лет."
    
message: str = greet("Анна", 30)

Частые ошибки начинающих

  1. Необъявленные переменные:

print(unknown_var)  # NameError
  1. Опечатки в именах:

counter = 1
print(counetr)  # Опечатка -> NameError
  1. Использование ключевых слов:

class = "10A"  # SyntaxError
  1. Несоответствие типов:

age = "25"     # Строка, а не число
print(age + 5) # TypeError
  1. Использование неинициализированной переменной:

# if is_active:  # NameError: name 'is_active' is not defined
#     print("Активен")

Сравнение с другими языками

Характеристика

Python

C++

Java

JavaScript

Типизация

Динамическая

Статическая

Статическая

Динамическая

Объявление

Не требуется

Требуется

Требуется

Не требуется

Изменение типа

Да

Нет

Нет

Да

Область видимости

Функция/класс

Блок

Блок

Функция

Советы по работе с переменными

  1. Осмысленные имена — код должен быть читаемым:

    • Плохо: a = 10

    • Хорошо: user_age = 10

  2. Змеиный регистр (snake_case) — стандарт именования в Python:

user_name = "Alex"
max_count = 100
  1. Избегайте однобуквенных имён (кроме временных переменных в циклах)

  2. Комментируйте неочевидные переменные:

# Таймаут в миллисекундах
timeout_ms = 5000

Упражнения для закрепления

  1. Создайте переменные для хранения:

    • Вашего имени

    • Вашего возраста

    • Среднего балла за последнюю сессию

  2. Напишите код, который вычисляет индекс массы тела (ИМТ):

weight = 70    # вес в кг
height = 1.75  # рост в метрах
# Ваш код для расчёта ИМТ (вес / рост²)
  1. Создайте три переменные с числами и поменяйте их значения по кругу:

    • a → b

    • b → c

    • c → a

Блок "Попробуйте сами"

Задание: создайте переменные для расчёта НДС

price = 1000    # цена товара
vat_rate = 0.2  # ставка НДС (20%)

# Ваш код для расчёта суммы с НДС:
# total_price = ?

# После решения проверьте:
# print(f"Итоговая цена: {total_price}")  # Должно быть 1200

Тестовые вопросы

  1. Какое имя переменной НЕ допустимо в Python?

    • a) user_name

    • b) 2nd_place

    • c) _temp

    • d) MAX_SIZE

  2. Что выведет этот код?

x = 10
y = x
y = 20
print(x)
  1. Какой тип будет у переменной после выполнения value = 5 / 2?

Заключение

Это расширенное руководство охватывает все аспекты работы с переменными в Python - от базовых концепций до продвинутых тем. Практикуйтесь, экспериментируйте с примерами и следуйте лучшим практикам, чтобы писать чистый и эффективный код.

Дополнительные ресурсы

  1. Официальная документация Python

  2. Python Tutor - визуализатор кода

  3. PEP 8 - руководство по стилю кода

  4. Real Python - учебные материалы

  5. PyLint - инструмент для проверки кода

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.