From b493ad4eb3950cbf5106c1cdcee6ebc47ad71ab0 Mon Sep 17 00:00:00 2001 From: System Date: Mon, 22 Sep 2025 02:37:58 +0300 Subject: [PATCH] Add lesson --- Module17/01_vowels/README.md | 20 ++ Module17/01_vowels/main.py | 1 + Module17/02_generation/README.md | 30 +++ Module17/02_generation/main.py | 1 + Module17/03_random_competition/README.md | 18 ++ Module17/03_random_competition/main.py | 1 + Module17/04_slices/README.md | 40 ++++ Module17/04_slices/main.py | 3 + Module17/05_reversal/README.md | 33 ++++ Module17/05_reversal/main.py | 1 + Module17/06_two_dimensional_list/README.md | 11 ++ Module17/06_two_dimensional_list/main.py | 1 + Module17/07_list_of_lists_2/README.md | 15 ++ Module17/07_list_of_lists_2/main.py | 4 + Module17/08_caesar_cipher/README.md | 19 ++ Module17/08_caesar_cipher/main.py | 1 + Module17/README.md | 212 +++++++++++++++++++++ 17 files changed, 411 insertions(+) create mode 100644 Module17/01_vowels/README.md create mode 100644 Module17/01_vowels/main.py create mode 100644 Module17/02_generation/README.md create mode 100644 Module17/02_generation/main.py create mode 100644 Module17/03_random_competition/README.md create mode 100644 Module17/03_random_competition/main.py create mode 100644 Module17/04_slices/README.md create mode 100644 Module17/04_slices/main.py create mode 100644 Module17/05_reversal/README.md create mode 100644 Module17/05_reversal/main.py create mode 100644 Module17/06_two_dimensional_list/README.md create mode 100644 Module17/06_two_dimensional_list/main.py create mode 100644 Module17/07_list_of_lists_2/README.md create mode 100644 Module17/07_list_of_lists_2/main.py create mode 100644 Module17/08_caesar_cipher/README.md create mode 100644 Module17/08_caesar_cipher/main.py create mode 100644 Module17/README.md diff --git a/Module17/01_vowels/README.md b/Module17/01_vowels/README.md new file mode 100644 index 0000000..8fa5928 --- /dev/null +++ b/Module17/01_vowels/README.md @@ -0,0 +1,20 @@ +## Задача 1. Гласные буквы +### Что нужно сделать +Команде лингвистов понравилось качество ваших программ, и они решили заказать у вас функцию для анализатора текста, которая создавала бы список гласных букв текста, а заодно считала бы их количество. + +Напишите программу, которая запрашивает у пользователя текст и генерирует список из гласных букв этого текста (сама строка вводится на русском языке). Выведите в консоль сам список и его длину. + +Пример: + +``` +Введите текст: Нужно отнести кольцо в Мордор! + +Список гласных букв: ['у', 'о', 'о', 'е', 'и', 'о', 'о', 'о', 'о'] +Длина списка: 9 +``` +### Что оценивается +- Результат вычислений корректен. +- Input содержит корректные приглашения для ввода. +- Формат вывода соответствует примеру. +- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3). + diff --git a/Module17/01_vowels/main.py b/Module17/01_vowels/main.py new file mode 100644 index 0000000..9b7f69c --- /dev/null +++ b/Module17/01_vowels/main.py @@ -0,0 +1 @@ +# TODO здесь писать код diff --git a/Module17/02_generation/README.md b/Module17/02_generation/README.md new file mode 100644 index 0000000..b3d1686 --- /dev/null +++ b/Module17/02_generation/README.md @@ -0,0 +1,30 @@ +## Задача 2. Генерация +### Что нужно сделать +Пользователь вводит целое число N. Вам необходимо написать программу, которая генерирует список из чисел от 0 до N (не включая N). +Например, если N — это 5, то нужно работать со списком 0, 1, 2, 3, 4. + +Также есть дополнительное условие. При заполнении списка нужно выполнить одно из двух действий с каждым числом: +- Если индекс числа чётный (или 0), то вместо числа необходимо взять 1; +- Если индекс числа нечётный, то вместо числа необходимо взять остаток от деления этого числа на 5 (число % 5). + +Таким образом нужен следующий алгоритм: +``` +цикл по числам + если текущий индекс чётный + то в список добавляется 1 + если текущий индекс нечётный + то в список добавляется (число % 5) +``` +Алгоритм нужно реализовать при помощи генератора списка (в одну строку). + +Пример: +``` +Введите длину списка: 10 +Результат: [1, 1, 1, 3, 1, 0, 1, 2, 1, 4] +``` +### Что оценивается +- Результат вычислений корректен. +- Input содержит корректные приглашения для ввода. +- Формат вывода соответствует указанному в задаче. +- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3). + diff --git a/Module17/02_generation/main.py b/Module17/02_generation/main.py new file mode 100644 index 0000000..9b7f69c --- /dev/null +++ b/Module17/02_generation/main.py @@ -0,0 +1 @@ +# TODO здесь писать код diff --git a/Module17/03_random_competition/README.md b/Module17/03_random_competition/README.md new file mode 100644 index 0000000..98423bb --- /dev/null +++ b/Module17/03_random_competition/README.md @@ -0,0 +1,18 @@ +## Задача 3. Случайные соревнования +### Что нужно сделать +Мы хотим протестировать работу электронной таблицы для участников некоторых соревнований. Есть два списка (то есть две команды) по 20 участников в каждом. В этих списках хранятся очки каждого участника (это вещественные числа с двумя знаками после точки, например 4.03). Участник одной команды соревнуется с участником другой команды под таким же номером. То есть первый соревнуется с первым, второй — со вторым и так далее. + +Напишите программу, которая генерирует два списка участников (по 20 элементов) из случайных вещественных чисел (от 5 до 10). Для этого найдите подходящую функцию из модуля random. Затем сгенерируйте третий список, в котором окажутся только победители из каждой пары. + +Пример: + +``` +Первая команда: [7.86, 6.76, 9.97, 9.08, 5.45, 6.9, 8.65, 5.17, 8.17, 5.06, 7.56, 7.1, 7.18, 8.25, 5.53, 7.95, 8.91, 7.11, 8.29, 9.52] +Вторая команда: [7.13, 5.7, 8.89, 5.36, 5.62, 9.46, 5.82, 8.67, 8.41, 7.0, 5.31, 7.8, 9.93, 7.76, 7.4, 8.26, 7.94, 5.71, 7.89, 7.77] +Победители тура: [7.86, 6.76, 9.97, 9.08, 5.62, 9.46, 8.65, 8.67, 8.41, 7.0, 7.56, 7.8, 9.93, 8.25, 7.4, 8.26, 8.91, 7.11, 8.29, 9.52] +``` +### Что оценивается +- Результат вычислений корректен. +- Формат вывода соответствует примеру. +- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3). + diff --git a/Module17/03_random_competition/main.py b/Module17/03_random_competition/main.py new file mode 100644 index 0000000..9b7f69c --- /dev/null +++ b/Module17/03_random_competition/main.py @@ -0,0 +1 @@ +# TODO здесь писать код diff --git a/Module17/04_slices/README.md b/Module17/04_slices/README.md new file mode 100644 index 0000000..8b45916 --- /dev/null +++ b/Module17/04_slices/README.md @@ -0,0 +1,40 @@ +## Задача 4. Тренируемся со срезами +### Что нужно сделать +Дана строка, в которой хранятся первые семь букв английского алфавита. + +`alphabet = 'abcdefg'` + +Напишите программу, которая выводит на экран десять вот таких результатов: + +1. Копию строки. +1. Элементы строки в обратном порядке. +1. Каждый второй элемент строки (включая самый первый). +1. Каждый второй элемент строки после первого. +1. Все элементы до второго. +1. Все элементы начиная с конца до предпоследнего. +1. Все элементы в диапазоне индексов от 3 до 4 (не включая 4). +1. Последние три элемента строки. +1. Все элементы в диапазоне индексов от 3 до 4. +1. То же, что и в предыдущем пункте, но в обратном порядке. + +Для получения и вывода результатов используйте только команду print и срезы. + +Результаты работы программы: + +``` +1: abcdefg +2: gfedcba +3: aceg +4: bdf +5: a +6: g +7: d +8: efg +9: de +10: ed +``` +### Что оценивается +- Результат вычислений корректен. +- Формат вывода соответствует примеру. +- Для получения результата используются только print и срезы переменной alphabet. + diff --git a/Module17/04_slices/main.py b/Module17/04_slices/main.py new file mode 100644 index 0000000..83c829e --- /dev/null +++ b/Module17/04_slices/main.py @@ -0,0 +1,3 @@ +alphabet = 'abcdefg' + +# TODO здесь писать код diff --git a/Module17/05_reversal/README.md b/Module17/05_reversal/README.md new file mode 100644 index 0000000..5e9d123 --- /dev/null +++ b/Module17/05_reversal/README.md @@ -0,0 +1,33 @@ +## Задача 5. Разворот +### Что нужно сделать +На вход в программу подаётся строка, в которой буква h встречается как минимум два раза. Реализуйте код, который разворачивает последовательность символов, заключённую между первым и последним появлением буквы h, в противоположном порядке. + +Пример 1: + +``` +Введите строку: hqwehrty +Развёрнутая последовательность между первым и последним h: ewq. +``` + +Пример 2: + +``` +Введите строку: hh +Развёрнутая последовательность между первым и последним h: +``` + +Пример 3: + +``` +Введите строку: hhqwerh +Развёрнутая последовательность между первым и последним h: rewqh. +``` +### Что оценивается +- Результат вычислений корректен. +- input содержит корректные приглашения для ввода. +- Формат вывода соответствует примеру. +- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3). + +### Советы и рекомендации +- Индекс нужного элемента можно искать как вручную, так и при помощи готовых методов списка. +- У метода `index` есть «брат» — метод `rindex`. В отличие от первого второй метод начинает поиск с правой стороны (с конца). Подробнее о нём вы можете узнать [в этой статье](https://www.w3schools.com/python/ref_string_rindex.asp). \ No newline at end of file diff --git a/Module17/05_reversal/main.py b/Module17/05_reversal/main.py new file mode 100644 index 0000000..9b7f69c --- /dev/null +++ b/Module17/05_reversal/main.py @@ -0,0 +1 @@ +# TODO здесь писать код diff --git a/Module17/06_two_dimensional_list/README.md b/Module17/06_two_dimensional_list/README.md new file mode 100644 index 0000000..a893f41 --- /dev/null +++ b/Module17/06_two_dimensional_list/README.md @@ -0,0 +1,11 @@ +## Задача 6. Двумерный список +### Что нужно сделать +Как мы говорили ранее, в программировании часто приходится писать код исходя из результата, который требует заказчик. В этот раз заказчику нужно получить вот такой двумерный список: + +`[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]` + +Напишите программу, которая генерирует такой список и выводит его на экран. Используйте только list comprehensions. +### Что оценивается +- Результат вычислений корректен. +- Формат вывода соответствует примеру: без текста, просто двумерный список с числами. +- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3). diff --git a/Module17/06_two_dimensional_list/main.py b/Module17/06_two_dimensional_list/main.py new file mode 100644 index 0000000..9b7f69c --- /dev/null +++ b/Module17/06_two_dimensional_list/main.py @@ -0,0 +1 @@ +# TODO здесь писать код diff --git a/Module17/07_list_of_lists_2/README.md b/Module17/07_list_of_lists_2/README.md new file mode 100644 index 0000000..b73c701 --- /dev/null +++ b/Module17/07_list_of_lists_2/README.md @@ -0,0 +1,15 @@ +## Задача 7. Список списков +### Что нужно сделать +Дан многомерный список: + +```python +nice_list = [[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[10, 11, 12], [13, 14, 15], [16, 17, 18]]] +``` +Напишите код, который «раскрывает» все вложенные списки, то есть оставляет только внешний список. Для решения используйте только list comprehensions. + +`Ответ: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]` +### Что оценивается +- Результат вычислений корректен. +- Формат вывода соответствует ответу. +- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3). + diff --git a/Module17/07_list_of_lists_2/main.py b/Module17/07_list_of_lists_2/main.py new file mode 100644 index 0000000..a829c03 --- /dev/null +++ b/Module17/07_list_of_lists_2/main.py @@ -0,0 +1,4 @@ +nice_list = [[[1, 2, 3], [4, 5, 6], [7, 8, 9]], + [[10, 11, 12], [13, 14, 15], [16, 17, 18]]] + +# TODO здесь писать код diff --git a/Module17/08_caesar_cipher/README.md b/Module17/08_caesar_cipher/README.md new file mode 100644 index 0000000..8296770 --- /dev/null +++ b/Module17/08_caesar_cipher/README.md @@ -0,0 +1,19 @@ +## Задача 8. Шифр Цезаря +### Что нужно сделать +Юлий Цезарь использовал свой способ шифрования текста. Каждая буква заменялась на следующую по алфавиту через K позиций по кругу. Если взять русский алфавит и K = 3, то в слове, которое мы хотим зашифровать, буква А станет буквой Г, Б станет Д и так далее. + +Пользователь вводит сообщение, а также значение сдвига. Напишите программу, которая зашифрует это сообщение при помощи шифра Цезаря. + +Пример: + +``` +Введите сообщение: это питон. +Введите сдвиг: 3 +Зашифрованное сообщение: ахс тлхср. +``` +### Что оценивается +- Результат вычислений корректен. +- input содержит корректные приглашения для ввода. +- Формат вывода соответствует примеру. +- Алгоритм шифрования вынесен в отдельную функцию. +- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3). diff --git a/Module17/08_caesar_cipher/main.py b/Module17/08_caesar_cipher/main.py new file mode 100644 index 0000000..9b7f69c --- /dev/null +++ b/Module17/08_caesar_cipher/main.py @@ -0,0 +1 @@ +# TODO здесь писать код diff --git a/Module17/README.md b/Module17/README.md new file mode 100644 index 0000000..c5735b2 --- /dev/null +++ b/Module17/README.md @@ -0,0 +1,212 @@ +## Цели домашнего задания +Уметь: + +- описывать list comprehensions и преимущества его использования; +- использовать list comprehensions (с условной логикой и без неё) для генерации списков; +- использовать срезы списков для создания копии, получения части списка и изменения объектов внутри списка; +- работать с индексами и срезами строк для решения задач. +## Что входит в задание +- Задача 1. Гласные буквы. +- Задача 2. Генерация. +- Задача 3. Случайные соревнования. +- Задача 4. Тренируемся со срезами. +- Задача 5. Разворот. +- Задача 6. Двумерный список. +- Задача 7. Список списков. +- Задача 8. Шифр Цезаря. + +Во всех задачах для генерации списков используйте list comprehensions. + +## Задача 1. Гласные буквы +### Что нужно сделать +Команде лингвистов понравилось качество ваших программ, и они решили заказать у вас функцию для анализатора текста, которая создавала бы список гласных букв текста, а заодно считала бы их количество. + +Напишите программу, которая запрашивает у пользователя текст и генерирует список из гласных букв этого текста (сама строка вводится на русском языке). Выведите в консоль сам список и его длину. + +Пример: + +``` +Введите текст: Нужно отнести кольцо в Мордор! + +Список гласных букв: ['у', 'о', 'о', 'е', 'и', 'о', 'о', 'о', 'о'] +Длина списка: 9 +``` +### Что оценивается +- Результат вычислений корректен. +- Input содержит корректные приглашения для ввода. +- Формат вывода соответствует примеру. +- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3). + +## Задача 2. Генерация +### Что нужно сделать +Пользователь вводит целое число N. Напишите программу, которая генерирует список из N чисел, на чётных местах в нём стоят единицы, а на нечётных — числа, равные остатку от деления своего номера на 5. + +Пример: + +``` +Введите длину списка: 10 +Результат: [1, 1, 1, 3, 1, 0, 1, 2, 1, 4] +``` +### Что оценивается +- Результат вычислений корректен. +- Input содержит корректные приглашения для ввода. +- Формат вывода соответствует указанному в задаче. +- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3). + +## Задача 3. Случайные соревнования +### Что нужно сделать +Мы хотим протестировать работу электронной таблицы для участников некоторых соревнований. Есть два списка (то есть две команды) по 20 участников в каждом. В этих списках хранятся очки каждого участника (это вещественные числа с двумя знаками после точки, например 4.03). Участник одной команды соревнуется с участником другой команды под таким же номером. То есть первый соревнуется с первым, второй — со вторым и так далее. + +Напишите программу, которая генерирует два списка участников (по 20 элементов) из случайных вещественных чисел (от 5 до 10). Для этого найдите подходящую функцию из модуля random. Затем сгенерируйте третий список, в котором окажутся только победители из каждой пары. + +Пример: + +``` +Первая команда: [7.86, 6.76, 9.97, 9.08, 5.45, 6.9, 8.65, 5.17, 8.17, 5.06, 7.56, 7.1, 7.18, 8.25, 5.53, 7.95, 8.91, 7.11, 8.29, 9.52] +Вторая команда: [7.13, 5.7, 8.89, 5.36, 5.62, 9.46, 5.82, 8.67, 8.41, 7.0, 5.31, 7.8, 9.93, 7.76, 7.4, 8.26, 7.94, 5.71, 7.89, 7.77] +Победители тура: [7.86, 6.76, 9.97, 9.08, 5.62, 9.46, 8.65, 8.67, 8.41, 7.0, 7.56, 7.8, 9.93, 8.25, 7.4, 8.26, 8.91, 7.11, 8.29, 9.52] +``` +### Что оценивается +- Результат вычислений корректен. +- Формат вывода соответствует примеру. +- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3). + +## Задача 4. Тренируемся со срезами +### Что нужно сделать +Дана строка, в которой хранятся первые семь букв английского алфавита. + +`alphabet = 'abcdefg'` + +Напишите программу, которая выводит на экран десять вот таких результатов: + +1. Копию строки. +1. Элементы строки в обратном порядке. +1. Каждый второй элемент строки (включая самый первый). +1. Каждый второй элемент строки после первого. +1. Все элементы до второго. +1. Все элементы начиная с конца до предпоследнего. +1. Все элементы в диапазоне индексов от 3 до 4 (не включая 4). +1. Последние три элемента строки. +1. Все элементы в диапазоне индексов от 3 до 4. +1. То же, что и в предыдущем пункте, но в обратном порядке. + +Для получения и вывода результатов используйте только команду print и срезы. + +Результаты работы программы: + +``` +1: abcdefg +2: gfedcba +3: aceg +4: bdf +5: a +6: g +7: d +8: efg +9: de +10: ed +``` +### Что оценивается +- Результат вычислений корректен. +- Формат вывода соответствует примеру. +- Для получения результата используются только print и срезы переменной alphabet. + +## Задача 5. Разворот +### Что нужно сделать +На вход в программу подаётся строка, в которой буква h встречается как минимум два раза. Реализуйте код, который разворачивает последовательность символов, заключённую между первым и последним появлением буквы h, в противоположном порядке. + +Пример 1: + +``` +Введите строку: hqwehrty +Развёрнутая последовательность между первым и последним h: ewq. +``` + +Пример 2: + +``` +Введите строку: hh +Развёрнутая последовательность между первым и последним h: +``` + +Пример 3: + +``` +Введите строку: hhqwerh +Развёрнутая последовательность между первым и последним h: rewqh. +``` +### Что оценивается +- Результат вычислений корректен. +- input содержит корректные приглашения для ввода. +- Формат вывода соответствует примеру. +- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3). + +## Задача 6. Двумерный список +### Что нужно сделать +Как мы говорили ранее, в программировании часто приходится писать код исходя из результата, который требует заказчик. В этот раз заказчику нужно получить вот такой двумерный список: + +`[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]` + +Напишите программу, которая генерирует такой список и выводит его на экран. Используйте только list comprehensions. +### Что оценивается +- Результат вычислений корректен. +- Формат вывода соответствует примеру: без текста, просто двумерный список с числами. +- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3). + +## Задача 7. Список списков +### Что нужно сделать +Дан вот такой (уже многомерный!) список: + +```python +nice_list = [[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[10, 11, 12], [13, 14, 15], [16, 17, 18]]] +``` +Напишите код, который «раскрывает» все вложенные списки, то есть оставляет только внешний список. Для решения используйте только list comprehensions. + +`Ответ: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]` +### Что оценивается +- Результат вычислений корректен. +- Формат вывода соответствует ответу. +- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3). + +## Задача 8. Шифр Цезаря +### Что нужно сделать +Юлий Цезарь использовал свой способ шифрования текста. Каждая буква заменялась на следующую по алфавиту через K позиций по кругу. Если взять русский алфавит и K = 3, то в слове, которое мы хотим зашифровать, буква А станет буквой Г, Б станет Д и так далее. + +Пользователь вводит сообщение, а также значение сдвига. Напишите программу, которая зашифрует это сообщение при помощи шифра Цезаря. + +Пример: + +``` +Введите сообщение: это питон. +Введите сдвиг: 3 +Зашифрованное сообщение: ахс тлхср. +``` +### Что оценивается +- Результат вычислений корректен. +- input содержит корректные приглашения для ввода. +- Формат вывода соответствует примеру. +- Алгоритм шифрования вынесен в отдельную функцию. +- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3). +## Что оценивается в домашнем задании +- Практическая работа сдана через GitLab. +- Структура папок и файлов репозитория соответствует репозиторию python_basic. +- Все задачи выполнены в соответствующих папках и файлах `main.py`. +- Описания коммитов осмысленны и понятны: `111`, `done`, `«я сделалъ»` — неверно; `added m15 homework`, `14.3 fix: variables naming` — верно. +- Использованы именованные индексы, не просто `i` (подробнее в видео 7.2). +- Использованы правильные числа, без дополнительных действий со стороны пользователя, без `+1` (подробнее об этом в видео 7.4). +- Правильно оформлен `input`, без пустого приветствия для ввода (подробнее об этом в видео 2.3). +- Переменные и функции имеют значащие имена, не только `a`, `b`, `c`, `d` (подробнее об этом в видео 2.3). +- Есть пробелы после запятых и при бинарных операциях. +- Нет пробелов после имён функций и перед скобками: `print ()`, `input ()` — неверно; `print()` — верно. +- Правильно оформлены блоки `if-elif-else`, циклы и функции; отступы одинаковы во всех блоках одного уровня. +- Во всех задачах для генерации списков использованы `list comprehensions`. +## Советы и рекомендации +- Арифметические операции [PEP8](https://docs.python.org/3.7/reference/expressions.html#operator-precedence) остаются в приоритете. Необходимо вводить and, or. +- Руководство по стилю Python [PEP8](https://www.python.org/dev/peps/pep-0008/) на английском языке. +- Руководство по стилю Python [PEP8](https://pep8.ru/doc/pep8/) на русском языке. +- [Список встроенных функций](https://docs.python.org/3.7/library/functions.html). +## Как отправить задание на проверку +Чтобы выполнить домашнее задание, обновите репозиторий python_basic на своём компьютере при помощи IDE PyCharm. Задачи находятся в папке Module17. + +Сдайте домашние работы этого модуля через систему контроля версий Git сервиса Skillbox GitLab. В уроке с домашним заданием напишите «Сделано» и прикрепите ссылку на репозиторий. Ссылки на реплит оставлять не нужно. +