Skip to content

Commit

Permalink
add lesson #1 slides and hw
Browse files Browse the repository at this point in the history
  • Loading branch information
Gennadii Kandaurov committed Sep 16, 2024
1 parent 1efaf2c commit fc979b1
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 0 deletions.
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,17 @@
# deep_python_autumn_2024
Материалы открытого курса Углубленный Python от VK Education, осень 2024

## Лекции и материалы (слайды, домашки, код с занятий)
01. [Введение, типы данных, управляющие конструкции, тестирование](lesson-01)


## FAQ
* Обязательно ли соблюдение правил оформления репозитория с домашками, как указано в приветственном посте на портале?
> Да.
* Как работает мягкий дедлайн?
> Если отправить домашку на проверку до наступления мягкого дедлайна по этой домашке, то можно получить полный балл (7). Более того, вторая и третья попытки, отправленные даже после дедлайна, уже штрафоваться не будут.
* Как отправлять вторую и третью попытки сдачи ДЗ?
> Обязательно нужно переотправить через портал, как это выполнялось с первой попыткой. Можно дополнить комментарием в обсуждении, но коментарий не является обязательным. Только комментария недостаточно, тк если случайно его просмотреть, портал будет считать эту домашку проверенной и проверка правок по ней может сильно отсрочиться.
* Списывать нельзя?
> **Списывать нельзя**, но использовать различные ресурсы для подготовки можно. За списывание штраф 3 балла и попытка сдачи данной домашки, то есть можно будет пересдать списанную домашку только с одной попыткой. За повторное списывание студент отчисляется с курса.
56 changes: 56 additions & 0 deletions lesson-01/homework.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Домашнее задание #01 (введение, тестирование)

### 1. Функция оценки сообщения
Реализовать функцию `predict_message_mood`, которая принимает на вход строку `message` и пороги хорошести.
Функция возвращает:
- "неуд", если предсказание модели меньше `bad_threshold`;
- "отл", если предсказание модели больше `good_threshold`;
- "норм" в остальных случаях.

Функция `predict_message_mood` создает экземпляр класса `SomeModel` и вызывает у этого экземпляра метод `predict` с аргументом `message`.

```py
class SomeModel:
def predict(self, message: str) -> float:
# реализация не важна


def predict_message_mood(
message: str,
bad_thresholds: float = 0.3,
good_thresholds: float = 0.8,
) -> str:
...
model.predict()
...


assert predict_message_mood("Чапаев и пустота") == "отл"
assert predict_message_mood("Чапаев и пустота", 0.8, 0.99) == "норм"
assert predict_message_mood("Вулкан") == "неуд"
```

### 2. Генератор для чтения и фильтрации файла
Есть текстовый файл, который может не помещаться в память.
В каждой строке файла фраза или предложение: набор слов, разделенных пробелами (знаков препинания нет).

Генератор должен принимать на вход:
- имя файла или файловый объект;
- список слов для поиска;
- список стоп-слов.

Генератор перебирает строки файла и возвращает только те из них (строку целиком), где встретилось хотя бы одно из слов для поиска.
Если в одной строке сразу несколько совпадений, то вернуть строку надо лишь один раз.
Если в строке встретилось слово из списка стоп-слов, то такая строка должна игнорирроваться, даже если там есть совпадения по словам поиска.
Поиск совпадений и стоп-слов должен выполняться по полному совпадению слова без учета регистра.

Например, для строки из файла "а Роза упала на лапу Азора" слово поиска "роза" должно найтись, а "роз" или "розан" - уже нет.
В случае той же строки "а Роза упала на лапу Азора", слова-совпадения "роза" и стоп-слова "азора" исходная строка должна будет быть отброщена.

### 3. Тесты в отдельном модуле для каждого пункта

### 4. Перед отправкой на проверку код должен быть прогнан через flake8 и pylint, по желанию еще black

### 5. Покрытие тестов через coverage, отчет в репу

### 6. Зеленый пайплайн
Binary file added lesson-01/lesson-01.pdf
Binary file not shown.

0 comments on commit fc979b1

Please sign in to comment.