Skip to content
Dmitriy Permyakov edited this page Dec 25, 2022 · 9 revisions

All tasks of the 4th week.

Task 1.

Open task

Написать функцию, которая на вход принимает строку, а на выход выдает булево значение (True или False), которое истинно, если полученная строка соответствует российскому номеру телефона или адресу электронной почты. Сигнатура функции: check_string(string) -> bool

Формат ввода:

+7-916-000-00-00

Формат вывода:

True

Примечания

Допустимые форматы телефонов. Код страны - всегда либо 7, либо 8, либо +7, либо опущен; код оператора может быть любой:

89160000000
+79160000000
9160000000
8(916)000-00-00
+7(916)000-00-00
(916)000-00-00
8 (916) 000-00-00
+7 (916) 000-00-00
(916) 000-00-00
8(916)0000000
+7(916)0000000
(916)0000000
8-916-000-00-00
+7-916-000-00-00
916-000-00-00

Валидным адресом электронной почты будем считать строки, содержащие @ и не меньше одной точки (после точки - не меньше двух символов), например:

abc@abc.ab
abc@abc.ab.ab
a@ab.ab
abc.abc@abc.abc
Невалидные адреса:
@abc.abc
abc@abc
abc@abc.a
abc@abc.abc.a
abc@abc.
abc@abc@abc

Task 2.

Open task

Напишите функцию get_popular_name_from_file(filename), которая считывает файл, в котором в каждой строке записаны имя и фамилия через пробел. filename - это имя файла, в котором записаны эти имена. Вам нужно вернуть строку - самое популярное имя в файле. Если таких имен несколько, они должны быть перечислены через запятую внутри строки в алфавитном порядке. Формат ввода:

Джо Байден
Владимир Добрый
Владимир Злой
Джо Буш
Илон Маск

Формат вывода:

Владимир, Джо

Task 3.

Open task Задачи, аналогичные этой, часто встречаются в реальной веб-разработке. Будем получать и отдавать JSONы. К вам поступают данные в виде json-строки, в которых содержится список людей. Для каждого человека описаны различные его параметры, но вам нужно посчитать просто средний возраст всех людей из списка. Напишите функцию mean_age(json_string), которая принимает json строку, считает средний возраст людей из входных данных и возвращает новую json-строку в том формате, который указан ниже. Формат ввода:
[
    {
        "name": "Петр",
        "surname": "Петров",
        "patronymic": "Васильевич",
        "age": 23,
        "occupation": "ойтишнек"
    },
    {
        "name": "Василий",
        "surname": "Васильев",
        "patronymic": "Петрович",
        "age": 24,
        "occupation": "дворник"
    }
]

Формат вывода:

{"mean_age": 23.5}

Clone this wiki locally