✅ Ответы и решения

⚡ Ответы опроса

Кортежи: 3, (1, 2, 3, 4), True, элементы печатаются по одному на строку. Списки: append добавит cherry; extend(4) даст TypeError; insert(-1) вставит перед последним; pop() вернёт 40; clear() даст пустой список; pop(10) даст IndexError.

Ответы на опросы

  • 1.1: 3. Последняя запятая в многоэлементном кортеже допустима.
  • 1.2: (1, 2, 3, 4). Оператор + соединяет кортежи.
  • 1.3: True. Значение 2 есть в кортеже.
  • 1.4: цикл печатает 10, 20, 30, 40 на отдельных строках.
  • 2.1: ["apple", "banana", "cherry"].
  • 2.2: ошибка TypeError, потому что 4 не является итерируемым объектом.
  • 2.3: ["a", "b", "x", "c"].
  • 2.4: список [10, 20, 30] и удалённый элемент 40.
  • 2.5: [].
  • 2.6: ошибка IndexError.

Практика 1: отчёт о студентах

# practice_student_report.py
students = [
    ("Алексей", 80, 100),
    ("Мария", 50, 100),
    ("Дмитрий", 70, 100),
    ("Екатерина", 40, 100),
]

print(f"{'Имя':<15}{'Процент':>10}{'Статус':>12}")
print("-" * 37)

for name, points, max_points in students:
    percent = points / max_points * 100
    status = "Незачёт" if percent < 50 else "Зачёт"
    print(f"{name:<15}{percent:>10.2f}{status:>12}")

Практика 2: подсчёт Banana

# practice_count_banana.py
shopping_list = ["Banana", "Apple", "Banana", "Orange", "Banana", "Apple"]
banana_count = shopping_list.count("Banana")
print(f'Товар "Banana" встречается {banana_count} раз(а).')

Практика 3: анализ продаж

# practice_sales_analysis.py
sales = [
    ("Bread", 20),
    ("Milk", 15),
    ("Eggs", 30),
    ("Butter", 10),
    ("Cheese", 25),
]

total = 0
top_product = sales[0]

for product, amount in sales:
    total += amount
    if amount > top_product[1]:
        top_product = (product, amount)

print("Общее количество проданных товаров:", total)
print(f"Самый популярный товар: {top_product[0]} ({top_product[1]} шт.)")