✅ Решения заданий

⚠️ Рекомендация: попробуйте решить задания самостоятельно, прежде чем смотреть ответы. Решения — это последняя инстанция, когда собственные попытки исчерпаны.

⚡ Решения в двух словах

  • Задание 1 — range(n + 1) + if i % 3 == 0 + append().
  • Задание 2 — сумма длин через цикл, среднее, второй цикл для фильтрации.
  • Современный вариант — list comprehension и sum(len(name) for name in names).

Ответы на вопросы для закрепления

Блок 1

  • Вопрос 1 — d: элементы разных типов данных.
  • Вопрос 2 — a: [].

Блок 2

  • Вопрос 1 — c: 3.
  • Вопрос 2 — b: [5, 4, 3, 2, 1, 0].
  • Вопрос 3 — b: ['a', 0, 'c', 'd'].

Блок 3

  • Вопрос 1 — a: [1, 2, 3, 4, 5, 6].
  • Вопрос 2 — d: [0, 0, 0, 0].
  • Вопрос 3 — b: False.

Блок 4

  • Вопрос 1 — d: cat на одной строке и dog на следующей.

Решение задания 1: Список чисел

📄 task_01_divisible_by_three.py
n = int(input("Введите число: "))
numbers = []

for i in range(n + 1):
    if i % 3 == 0:
        numbers.append(i)

for num in numbers:
    print(num)

Логика решения: перебираем все числа от 0 до n включительно. Если число делится на 3 без остатка, добавляем его в список numbers. Затем выводим каждый элемент списка.

💡 Современный вариант:
n = int(input("Введите число: "))
numbers = [i for i in range(n + 1) if i % 3 == 0]
print(*numbers, sep="\n")

Решение задания 2: Список имён

📄 task_02_names_above_average.py
names = ["John", "Bob", "Alice", "Anna", "Mark"]

# Рассчитаем среднюю длину имён
sum_len = 0
for name in names:
    sum_len += len(name)
average_length = sum_len / len(names)

# Выводим имена, длина которых больше средней
print("Список имён:", names)
print("Средняя длина имён:", average_length)
print("Имена длиннее средней длины:")
for name in names:
    if len(name) > average_length:
        print(name)

Логика решения: накапливаем сумму длин всех имён в переменной sum_len. Делим сумму на количество имён, чтобы получить среднее. Вторым циклом выводим имена, длина которых превышает среднее.

💡 Современный вариант:
names = ["John", "Bob", "Alice", "Anna", "Mark"]

average_length = sum(len(name) for name in names) / len(names)
long_names = [name for name in names if len(name) > average_length]

print("Список имён:", names)
print("Средняя длина имён:", average_length)
print("Имена длиннее средней длины:")
for name in long_names:
    print(name)
Проверить по документации: list comprehensions, генераторные выражения и использование sum() с генератором выходят за рамки исходного занятия. Они описаны в официальной документации Python.