<MyRusakov.ru />

Программирование на C++ в Unreal Engine 5

Программирование на C++ в Unreal Engine 5

Данный курс научит Вас созданию игр на C++ в Unreal Engine 5. Курс состоит из 12 разделов, в которых Вас ждёт теория и практика. Причём, в качестве практики будет создан весьма крупный проект объёмом свыше 5000 строк качественного кода, который уже на практике познакомит Вас с принципами создания игр на C++ в Unreal Engine 5.

Параллельно с курсом Вы также будете получать домашние задания, результатом которых станет, в том числе, полноценная серьёзная работа для портфолио.

Помимо самого курса Вас ждёт ещё и очень ценный Бонус: «Тестирование Unreal-проектов на Python», в рамках которого Вы научитесь писать очень полезные тесты для тестирования самых разных аспектов разработки игр.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Кортежи в Python (tuple): зачем нужны, чем отличаются от списков и как использовать

Кортежи в Python (tuple): зачем нужны, чем отличаются от списков и как использовать

Кортежи в Python — одна из базовых структур данных, которую новички часто недооценивают. На первый взгляд tuple похож на список: в нём тоже можно хранить несколько значений и обращаться к ним по индексу. Главное отличие в том, что кортеж неизменяем: после создания нельзя добавить, удалить или заменить элемент.

Поисковый запрос, на который отвечает эта статья: «кортежи в Python tuple примеры». Разберём не теорию ради теории, а реальные ситуации, где tuple делает код понятнее и безопаснее.

Что такое кортеж в Python

Кортеж — это упорядоченная коллекция элементов. Создаётся он с помощью круглых скобок или просто через запятую:

point = (10, 20)
user = 'Анна', 25, 'Python'

print(point[0])  # 10
print(user[2])   # Python

Круглые скобки улучшают читаемость, поэтому в большинстве случаев лучше писать их явно.

Кортеж из одного элемента: важная деталь

Одна из самых частых ошибок новичков — забыть запятую при создании кортежа из одного элемента.

not_tuple = (5)
real_tuple = (5,)

print(type(not_tuple))   # <class 'int'>
print(type(real_tuple))  # <class 'tuple'>

В Python кортеж определяет не скобка, а запятая. Скобки лишь группируют выражение.

Чем tuple отличается от list

Список можно изменять, а кортеж нельзя. Это делает tuple хорошим выбором для данных, структура которых не должна меняться.

numbers = [1, 2, 3]
numbers[0] = 100
print(numbers)  # [100, 2, 3]

coords = (1, 2, 3)
# coords[0] = 100  # TypeError: 'tuple' object does not support item assignment

Выбирайте list, если коллекция будет пополняться, сортироваться или изменяться. Выбирайте tuple, если набор значений фиксирован: координаты, RGB-цвет, дата, результат функции.

Практический пример: координаты и размеры

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

position = (120, 45)
size = (800, 600)
color = (255, 120, 0)

x, y = position
width, height = size
red, green, blue = color

print(f'Позиция: x={x}, y={y}')
print(f'Размер: {width}x{height}')

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

Распаковка кортежей

Распаковка — одна из самых полезных возможностей tuple. Она позволяет быстро разложить элементы по переменным.

person = ('Иван', 31, 'разработчик')
name, age, job = person

print(name)  # Иван
print(age)   # 31
print(job)   # разработчик

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

person = ('Иван', 31, 'разработчик')

# name, age = person
# ValueError: too many values to unpack

Распаковка со звёздочкой

Если нужно забрать первый и последний элемент, а середину собрать отдельно, используйте оператор *:

grades = ('Аня', 5, 4, 5, 3, 5)
name, *marks = grades

print(name)   # Аня
print(marks)  # [5, 4, 5, 3, 5]

Обратите внимание: переменная со звёздочкой получает список, а не кортеж.

Возврат нескольких значений из функции

В Python функция может возвращать несколько значений. На самом деле она возвращает кортеж, который затем можно распаковать.

def get_min_max(numbers):
    return min(numbers), max(numbers)

values = [8, 3, 10, 1, 6]
minimum, maximum = get_min_max(values)

print(minimum)  # 1
print(maximum)  # 10

Это частый и красивый приём. Он избавляет от лишних словарей и классов там, где нужно вернуть всего 2–3 связанных значения.

Кортежи как ключи словаря

Так как tuple неизменяем, его можно использовать как ключ словаря — при условии, что внутри тоже лежат неизменяемые объекты.

temperatures = {
    ('Москва', '2026-01-10'): -5,
    ('Казань', '2026-01-10'): -8,
    ('Сочи', '2026-01-10'): 7,
}

key = ('Москва', '2026-01-10')
print(temperatures[key])  # -5

Такой подход удобен для составных ключей: город + дата, пользователь + товар, координата X + координата Y.

Методы tuple: count и index

У кортежей мало методов, потому что они неизменяемы. Основные — count() и index().

items = ('python', 'sql', 'python', 'html')

print(items.count('python'))  # 2
print(items.index('sql'))     # 1

count() считает количество вхождений, а index() возвращает индекс первого найденного элемента. Если элемента нет, index() вызовет ошибку ValueError.

Неизменяемость не всегда глубокая

Важный нюанс: сам кортеж изменить нельзя, но если внутри лежит изменяемый объект, например список, его содержимое менять можно.

data = (1, 2, ['a', 'b'])

data[2].append('c')
print(data)  # (1, 2, ['a', 'b', 'c'])

# data[0] = 100  # нельзя

Поэтому не стоит считать tuple абсолютной защитой от любых изменений. Он защищает структуру кортежа, но не обязательно вложенные объекты.

Когда использовать кортежи: рекомендации

  • Используйте tuple для фиксированных наборов данных: координат, размеров, диапазонов, пар значений.
  • Возвращайте кортеж из функции, если нужно вернуть несколько простых связанных результатов.
  • Используйте кортежи как ключи словаря для составных идентификаторов.
  • Не используйте tuple только ради «ускорения» кода: сначала думайте о смысле данных.
  • Если у элементов есть сложная бизнес-логика и имена полей важнее порядка, лучше рассмотреть dataclass или namedtuple.

Мини-практика: статистика по заказам

Рассмотрим небольшой пример. Пусть заказ представлен кортежем: имя клиента, сумма и статус.

orders = [
    ('Анна', 1200, 'paid'),
    ('Игорь', 700, 'new'),
    ('Мария', 2300, 'paid'),
    ('Олег', 400, 'cancelled'),
]

total_paid = 0

for customer, amount, status in orders:
    if status == 'paid':
        total_paid += amount

print(f'Оплачено на сумму: {total_paid}')

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

Типичные ошибки новичков

  • Забывают запятую в кортеже из одного элемента: нужно (value,).
  • Пытаются изменить элемент кортежа по индексу, как в списке.
  • Используют tuple для больших разнородных структур, где непонятно, что означает каждый индекс.
  • Делают код менее читаемым, возвращая из функции слишком много значений сразу.

Если вы хотите системно разобраться не только с кортежами, но и со всеми базовыми конструкциями языка, практическими задачами и переходом к уверенной разработке, посмотрите курс «Python с Нуля до Гуру» — пошаговый путь от основ к реальным программам.

Вывод

Кортежи в Python нужны не «вместо списков», а для других задач. Tuple хорошо подходит для неизменяемых, упорядоченных и фиксированных наборов данных. Он делает намерение программиста понятнее: если значение лежит в кортеже, значит его структура не должна меняться. Освойте создание, распаковку и возврат кортежей из функций — эти приёмы постоянно встречаются в реальном Python-коде.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (https://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: https://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: https://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.