# Контрольная работа № 1
Первые два задания должны быть оформлены в виде **2 отдельных функций** в ***одном*** файле.
Программа для 3 задания должна быть оформлена в отдельном файле и должна уметь общаться
с пользователем через `input()` и `print()`.
По названию функции/файла должно быть легко понять к какому заданию они относятся.
**Закиньте сделанное в приватный репозиторий на гитхабе.** После пары попрошу доступ к нему.
## Формула
mark(O1, O2, O3) = 0.5 * MAX(O1, O2, O3) + 0.3 * MEDIAN(O1, O2, O3) + 0.2 * MIN(O1, O2, O3)
```python
mark (3, 3, 10) = 6.5
average(3, 3, 10) = 5.3
```
## Задание № 1
Для данного задания нужно использовать свой корпус с морфологической разметкой в формате CoNLL-U (О. Ляшевская дала нам в качестве примера ссылку на [этот](https://raw.githubusercontent.com/KseniaSeverina/LiveCorpus/master/zemfira.csv)).
Если у вас такого нет, используйте [частотный словарь русского языка](https://goo.gl/1Q6fxq).
Ссылку на использованный файл укажите комментарием в коде.
В файлах на каждой строчке записано слово, морфологическая информация о нем (часть речи, число и т.д.) в виде списка тегов, что-то ещё.
Файлы выглядят
либо так
```
...
11 слова слово NOUN _ Animacy=Inan|Case=Nom|Gender=Neut|Number=Plur _ _ _ @vvp1934-words#@vvp1934#784.9#785.45
12 и и CCONJ _ _ _ _ _ @vvp1934-words#@vvp1934#785.45#786.0
13 музыка музыка NOUN _ Animacy=Inan|Case=Nom|Gender=Fem|Number=Sing
...
```
либо так
```
...
агрессор|сущ одуш ед муж им|5.02
агроном|сущ одуш ед муж им|6.67
агути|сущ одуш ед муж|1.29
ад|сущ неод ед муж им|32.14
адаптация|сущ неод ед жен им|5.51
адаптироваться|гл 2вид непер воз инф|2.2
адвентист|сущ одуш ед муж им|1.16
...
```
---
Напишите функцию, которая
* первым аргументом будет принимать путь к файлу с вашим корпусом (или частотным словарём, если вы делаете про него),
* вторым аргументом - часть речи (глагол, существительное или прилагательное, на другие части речи можно забить) в соответствующем файлу формате (для существительного это `NOUN` или `сущ` соответственно, например),
* третьим аргументом - одно из значений `"sing"` или `"plur"`. Третий аргумент опционален, по умолчанию равен пустой строке.
Функция должна возвращать **список кортежей**.
Каждый элемент списка - это кортеж из слова и его морфологического разбора.
Список должен содержать кортежи только про слова (из выбранного файла) указанной части речи и указанного числа, если число было указано.
## Задание № 2
Напишите функцию, которая будет принимать на вход два аргумента:
первый - какая-то строка;
второй - строка, одна из следующих: `'vow'`, `'all'`.
второй аргумент должен быть опциональным, его значение по умолчанию — `'all'`.
Если второй аргумент равен
* `'vow'` - программа должна вернуть кортеж из строки, полученной из исходной удалением всех согласных, и длины этой полученной строки.
* `'all'` - программа должна вернуть кортеж из исходной строки, и длины этой строки.
**NB!** использовать встроенную в Python функцию `len()` нельзя.
## Задание № 3
Для данного задания понадобится текст. Скачайте его по
[ссылке](https://gist.githubusercontent.com/Sapunov/9d2b729f10aa2216196aaabc14730aef/raw/f4bf9e0339be5908be307b5ddbb4890e9e1db62d/episode3.txt)
Нужно реализовать редакторскую программу, которая:
* спрашивает у пользователя `имя_файла`
* спрашивает у пользователя список слов через пробел. Эти слова назовём подлежащими цензуре. **NB!** если среди введённых пользователем слов было целое число (т.е. слово из цифр), то все слова — целые числа — считаются тоже подлежащими цензуре
* записывает в один файл `censored.txt` все строки из `имя_файла`, не содержащие слов, подлежащих цензуре
* выводит на экран имя созданного файла и пояснение о том, какой файл что содержит