Scroll to Top

← Назад

📦 Кортежи (tuple)

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

🔹 1. Создание кортежа

Кортежи создаются с помощью круглых скобок () или просто через запятую.

🔹 Синтаксис:

# С круглыми скобками
numbers = (1, 2, 3, 4, 5)

# Без скобок (тоже работает)
colors = "red", "green", "blue"

# Пустой кортеж
empty = ()

# Кортеж с одним элементом (нужна запятая!)
single = (42,)  # Без запятой это просто число в скобках

⚠️ Важно: Для кортежа из одного элемента обязательна запятая: (5,). Иначе Python воспримет это как число в скобках.

🔹 Примеры:

fruits = ("яблоко", "банан", "груша")
print(fruits)  # ('яблоко', 'банан', 'груша')

# Кортеж может хранить разные типы данных
mixed = (1, "Hello", 3.14, True)
print(mixed)  # (1, 'Hello', 3.14, True)

🔍 2. Доступ к элементам

Обращение к элементам кортежа работает так же, как у списков - через индексы.

animals = ("кот", "собака", "попугай")

print(animals[0])   # кот
print(animals[1])   # собака
print(animals[-1])  # попугай (последний элемент)

🔹 Срезы (slicing):

numbers = (0, 1, 2, 3, 4, 5)

print(numbers[1:4])   # (1, 2, 3)
print(numbers[:3])    # (0, 1, 2)
print(numbers[3:])    # (3, 4, 5)
print(numbers[::2])   # (0, 2, 4) - каждый второй

🔒 3. Неизменяемость кортежей

Главное отличие кортежа от списка - его нельзя изменить после создания.

coords = (10, 20)

# ❌ Попытка изменить элемент вызовет ошибку
coords[0] = 15  # TypeError: 'tuple' object does not support item assignment

📌 Почему это полезно? - Кортежи защищают данные от случайных изменений - Они работают быстрее списков - Их можно использовать как ключи словаря (списки нельзя)


🔄 4. Перебор кортежа

Кортежи можно перебирать циклом for, как списки:

weekdays = ("пн", "вт", "ср", "чт", "пт")

for day in weekdays:
    print(day)

Вывод:

пн
вт
ср
чт
пт

🔹 С индексами:

colors = ("красный", "синий", "зелёный")

for i in range(len(colors)):
    print(f"{i}: {colors[i]}")

Вывод:

0: красный
1: синий
2: зелёный

📊 5. Методы кортежей

У кортежей всего два метода:

Метод Описание Пример
.count(x) Считает, сколько раз встречается x (1,2,1).count(1) → 2
.index(x) Возвращает индекс первого x (5,7,9).index(7) → 1

🔹 Примеры:

numbers = (1, 2, 3, 2, 2, 5)

print(numbers.count(2))   # 3 (двойка встречается 3 раза)
print(numbers.index(3))   # 2 (тройка находится на индексе 2)

🔄 6. Распаковка кортежа

Кортежи можно распаковывать - присваивать их элементы нескольким переменным сразу.

point = (100, 200)
x, y = point

print(x)  # 100
print(y)  # 200

🔹 Обмен значений переменных:

a = 5
b = 10

# Обмен без временной переменной!
a, b = b, a

print(a)  # 10
print(b)  # 5

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

numbers = (1, 2, 3, 4, 5)

first, *middle, last = numbers

print(first)   # 1
print(middle)  # [2, 3, 4] (список!)
print(last)    # 5

🆚 7. Кортеж vs Список

Особенность Кортеж () Список []
Изменяемость ❌ Нельзя изменить ✅ Можно изменять
Скорость ⚡ Быстрее 🐢 Медленнее
Методы 2 метода Много методов
Использование Постоянные данные Изменяемые данные

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

  • Координаты: (x, y)
  • RGB цвета: (255, 128, 0)
  • Данные, которые не должны меняться
  • Возврат нескольких значений из функции

🔄 8. Преобразование типов

# Список → Кортеж
my_list = [1, 2, 3]
my_tuple = tuple(my_list)
print(my_tuple)  # (1, 2, 3)

# Кортеж → Список
my_tuple = (4, 5, 6)
my_list = list(my_tuple)
print(my_list)  # [4, 5, 6]

# Строка → Кортеж
text = "Hello"
letters = tuple(text)
print(letters)  # ('H', 'e', 'l', 'l', 'o')

🎓 Задания

🧪 1) Координаты точки

Создайте кортеж point с координатами (15, 25).

Распакуйте кортеж в переменные x и y, затем выведите на экран:

x = 15
y = 25
Решение:
point = (15, 25)
x, y = point

print(f"x = {x}")
print(f"y = {y}")



🧪 2) Подсчёт вхождений

Дан кортеж с оценками студента:

grades = (5, 4, 5, 3, 5, 4, 5, 5)

Подсчитайте, сколько раз встречается оценка 5, и выведите результат:

Пятёрок: 5

📌 Подсказка: используйте метод .count()

Решение:
grades = (5, 4, 5, 3, 5, 4, 5, 5)
count = grades.count(5)

print(f"Пятёрок: {count}")



🧪 3) Поиск максимального элемента

Дан кортеж с числами:

numbers = (23, 45, 12, 67, 34, 89, 15)

Найдите и выведите максимальное число из кортежа.

Пример вывода:

Максимальное число: 89

📌 Подсказка: используйте функцию max() или переберите кортеж циклом

Решение:
numbers = (23, 45, 12, 67, 34, 89, 15)

# Способ 1: встроенная функция
print(f"Максимальное число: {max(numbers)}")

# Способ 2: через цикл
maximum = numbers[0]
for num in numbers:
    if num > maximum:
        maximum = num

print(f"Максимальное число: {maximum}")



🧪 4) Обмен значений

Даны две переменные:

a = "Python"
b = "Java"

Поменяйте их значения местами без использования третьей переменной.

После обмена выведите:

a = Java
b = Python

📌 Подсказка: используйте распаковку кортежа

Решение:
a = "Python"
b = "Java"

a, b = b, a

print(f"a = {a}")
print(f"b = {b}")

Материал для учеников

Этот раздел доступен только ученикам Ника

Чтобы получить доступ, свяжитесь с преподавателем