📝 Практические задания

⚡ Задания в двух словах

  • Блок 1 — 2 вопроса про создание списков и их содержимое.
  • Блок 2 — 3 вопроса про индексацию, срезы и изменение элементов.
  • Блок 3 — 3 вопроса про операции +, *, in.
  • Блок 4 — 1 вопрос про вложенные циклы.
  • Практическое задание 1 — числа от 0 до n, делящиеся на 3.
  • Практическое задание 2 — имена длиннее средней длины.

🏃 Задания для закрепления 1: создание списков

Вопрос 1. Что можно хранить в списке в Python?

  • a. Только строки
  • b. Только числа
  • c. Только числа и строки
  • d. Элементы разных типов данных

Ответ: d — список может содержать элементы любых типов.

Вопрос 2. Какой результат выведет следующий код?

my_list = list()
print(my_list)
  • a. []
  • b. [None]
  • c. list()
  • d. Ошибка

Ответ: alist() создаёт пустой список.

🏋️ Задания для закрепления 2: индексация и срезы

Вопрос 1. Какой результат выведет следующий код?

my_list = [1, 2, 3, 4]
print(my_list[2])
  • a. 1
  • b. 2
  • c. 3
  • d. 4

Ответ: c — индексация с нуля, элемент с индексом 2 равен 3.

Вопрос 2. Какой результат выведет следующий код?

my_list = [0, 1, 2, 3, 4, 5]
print(my_list[::-1])
  • a. [0, 1, 2, 3, 4, 5]
  • b. [5, 4, 3, 2, 1, 0]
  • c. [0, -1, -2, -3, -4, -5]
  • d. Ошибка

Ответ: b — срез с шагом -1 переворачивает список.

Вопрос 3. Какое значение будет в списке my_list после выполнения кода?

my_list = ["a", "b", "c", "d"]
my_list[1] = 0
print(my_list)
  • a. ['a', 'b', 'c', 'd']
  • b. ['a', 0, 'c', 'd']
  • c. ['0', 'b', 'c', 'd']
  • d. ['a', 0, 'c', 'd']

Ответ: b — элемент с индексом 1 заменяется на целое число 0.

🧮 Задания для закрепления 3: операции со списками

Вопрос 1. Какой результат выведет следующий код?

list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined_list = list1 + list2
print(combined_list)
  • a. [1, 2, 3, 4, 5, 6]
  • b. [4, 5, 6, 1, 2, 3]
  • c. [1, 2, 3], [4, 5, 6]
  • d. Ошибка

Ответ: a — оператор + конкатенирует списки в порядке следования.

Вопрос 2. Какой результат выведет следующий код?

my_list = [0] * 4
print(my_list)
  • a. [4]
  • b. [1, 1, 1, 1]
  • c. [0]
  • d. [0, 0, 0, 0]

Ответ: d — оператор * повторяет список 4 раза.

Вопрос 3. Какой результат выведет следующий код?

my_list = [1, 2, 3, 4, 5]
print(6 in my_list)
  • a. True
  • b. False
  • c. Ошибка
  • d. Ничего не выведется

Ответ: b — число 6 отсутствует в списке, поэтому результат False.

🔁 Задания для закрепления 4: вложенные циклы

Вопрос 1. Какой результат выведет следующий код?

my_strings = ["cat", "dog"]
for word in my_strings:
    for letter in word:
        print(letter, end="")
    print()
  • a. c a t d o g
  • b. catdog
  • c. c a t d o g
  • d. cat\ndog

Ответ: d — внутренний цикл печатает буквы слова без разделителя, затем print() переводит строку. В итоге вывод: cat на одной строке и dog на следующей.

🏋️ Раздел тренировки

В этом разделе вы пошагово выполните 2 практических задания из занятия: от создания файла до рабочей программы в VS Code.

Цель тренировки: научиться создавать списки, заполнять их в цикле, использовать срезы, операции и вложенные циклы.

📂 Подготовка проекта

  1. Создайте папку урока внутри python-fundamentals-practice/lesson-18/.
  2. Активируйте виртуальное окружение.
  3. Создайте файлы task_01_divisible_by_three.py и task_02_names_above_average.py.

Задание 1. Список чисел

Условие: напишите программу, которая сохраняет в список все числа от 0 до n (введённого пользователем), которые делятся на 3. Выведите эти числа на экран.

Что должно получиться:

Введите число: 15
0
3
6
9
12
15

Подсказка: используйте range(n + 1) и проверку i % 3 == 0. Для добавления элемента в список используйте my_list.append(value).

Задание 2. Список имён

Условие: напишите программу, которая обрабатывает список строк, состоящий из имён. Нужно вывести только те имена, длина которых больше средней длины имён в списке.

Пример данных для обработки:

names = ["John", "Bob", "Alice", "Anna", "Mark"]

Что должно получиться:

Список имён: ['John', 'Bob', 'Alice', 'Anna', 'Mark']
Средняя длина имён: 4.0
Имена длиннее средней длины:
Alice

Подсказка: накопите сумму длин имён в цикле, разделите на len(names), затем снова пройдите по списку и выведите имена, длина которых больше средней.

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Что хранит dict?

Вопрос 2

Что гарантирует set?

Вопрос 3

Какой стиль имён переменных обычно рекомендует PEP 8?

Вопрос 4

Зачем использовать f-strings в современном Python?

Вопрос 5

Когда полезен ранний возврат из функции?

Вопрос 6

Что делает аннотация типа в Python?

Вопрос 7

Как лучше обрабатывать ожидаемую ошибку преобразования?