{"id":23292998,"url":"https://github.com/konstantinkalinichenko/medium_tasks","last_synced_at":"2025-09-09T01:39:41.247Z","repository":{"id":266355721,"uuid":"898106247","full_name":"KonstantinKalinichenko/Medium_Tasks","owner":"KonstantinKalinichenko","description":"Medium level Tasks to Demonstrate Proficiency in Python (hh.ru)","archived":false,"fork":false,"pushed_at":"2024-12-07T14:13:44.000Z","size":10,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-09T01:39:40.881Z","etag":null,"topics":["practice-programming","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KonstantinKalinichenko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-03T19:53:20.000Z","updated_at":"2024-12-07T14:13:47.000Z","dependencies_parsed_at":"2025-04-06T18:46:25.832Z","dependency_job_id":"a8c35fa0-818d-4a29-be1b-86af603fa3c6","html_url":"https://github.com/KonstantinKalinichenko/Medium_Tasks","commit_stats":null,"previous_names":["konstantinkalinichenko/medium_tasks"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/KonstantinKalinichenko/Medium_Tasks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KonstantinKalinichenko%2FMedium_Tasks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KonstantinKalinichenko%2FMedium_Tasks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KonstantinKalinichenko%2FMedium_Tasks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KonstantinKalinichenko%2FMedium_Tasks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KonstantinKalinichenko","download_url":"https://codeload.github.com/KonstantinKalinichenko/Medium_Tasks/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KonstantinKalinichenko%2FMedium_Tasks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274232030,"owners_count":25245856,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["practice-programming","python3"],"created_at":"2024-12-20T06:12:58.247Z","updated_at":"2025-09-09T01:39:41.225Z","avatar_url":"https://github.com/KonstantinKalinichenko.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"1.\tВы работаете над модулем внутрикорпоративной системы учета данных сотрудников компании.  \n\n**_Программа должна:_**  \n•\tНайти сотрудника с минимальным возрастом;  \n•\tВычислить медианный возраст всех сотрудников.  \n•\tНайти сотрудника с максимальным возрастом.  \n\nМедиана — число, которое находится в середине этого набора, если его упорядочить по возрастанию. Если набор чисел четный, то берется среднее между двумя средними числами и округляется до целого.  \n\n**Формат ввода:**  \nПервая строка содержит данные сотрудников. Данные включают имя, возраст и отдел, разделенные запятой, без пробелов. Информация о каждом сотруднике отделена от других через точку с запятой. Количество сотрудников — от 2 до 100.\n\n**Формат вывода:**  \nВторая строка содержит три целых числа, разделенные пробелом: минимальный возраст, медианный возраст и максимальный возраст.  \n\n**Пример 1:**  \n- _Входные данные:_  \nИван,28,Инженер;Олег,34,HR;Денис,45,Маркетинг;Анна,30,Инженер;Борис,24,HR  \n- _Выходные данные:_  \n24 30 45  \n\n**Пример 2:**  \n- _Входные данные:_  \nПавел,28,Инженер;Елена,34,Маркетинг  \n- _Выходные данные:_   \n28 31 34\n\n**Макет кода:**\n``` \ndef process_employee_data(input_string: str) -\u003e str:  \n    \"\"\"Ваш код\"\"\"\n\ninput_data = input()  \noutput_data = process_employee_data(input_data)  \nprint(output_data)\n```\n\n2. Вы работаете над системой управления продуктами в магазине. Вам нужно обработать данные о продуктах, их категориях и ценах, и вывести список категорий продуктов, отсортированный в алфавитном порядке, а затем, внутри каждой категории — список продуктов по возрастанию цены. Если цена совпадает, сортировка выполняется в алфавитном порядке.  \n\n**Формат ввода:**  \nКаждая строка содержит название продукта, категорию и цену, разделенные запятыми, без пробелов. Всего продуктов в списке не больше 100.   \n\n**Формат вывода:**  \nСписок категорий и продуктов. Сначала называется категория, затем через двоеточие — товары в этой категории, отсортированные по цене. Вывод построчный: на одну строку приходится одна категория или товар. Если цена совпадает у нескольких товаров, расположите их относительно друг друга в алфавитном порядке. Выводите цены с одной цифрой после точки (в том числе целые числа, например, «‎10.0»).   \n\n**Пример 1**  \n-_Входные данные:_  \nЯблоко,Фрукты,225 Банан,Фрукты,500 Морковь,Овощи,100 Брокколи,Овощи,200 Курица,Мясо,1200 Говядина,Мясо,2000  \n\n-_Выходные данные:_  \nМясо: Курица,1200.0 Говядина,2000.0 Овощи: Морковь,100.0 Брокколи,200.0 Фрукты: Яблоко,225.0 Банан,500.0\n\n**Макет функции:**\n```\ndef sort_products(input_strings):\n   \"\"\"Ваш код\"\"\"\n\nlines = []  \nwhile True:  \n   try:  \n      line = input()  \n      if line == \"\":  \n         break  \n   except EOFError:  \n      break  \n   lines.append(line)  \n\nfor string in sort_products(lines):  \n   print(string)\n```\n\n3. Вы разрабатываете программу для анализа временного ряда цен акций. Вам нужно написать программу, которая позволит выявлять максимальные значения на определенном временном промежутке, то есть выводить максимальные значения среди пройденных элементов на каждом шаге.  \n\n**Формат ввода**  \nОдна строка, в которой чередуются целые числа, разделенные пробелами. Длина списка — не больше 100 элементов.  \n\n**Формат вывода**  \nОдна строка, в которой чередуются целые числа, разделенные пробелами. В строке содержатся максимальные значения среди пройденных элементов на каждом шаге.\n\n**Пример 1**\n- _Входные данные:_  \n1 3 2 5 4  \n- _Выходные данные:_  \n1 3 3 5 5  \n\n**Пример 2**  \n- _Входные данные:_  \n7 1 5 3 6 4  \n- _Выходные данные:_  \n7 7 7 7 7 7  \n\n**Пример 3**  \n- _Входные данные:_  \n10 20 15 25 30 5  \n- _Выходные данные:_  \n10 20 20 25 30 30  \n\n**Пример 4**  \n- _Входные данные:_  \n5 5 5 5 5  \n- _Выходные данные:_  \n5 5 5 5 5  \n\n``` \ndef solve(input_string: str) -\u003e str:  \n    \"\"\"Ваш код\"\"\"  \n\ninput_string = input()  \nresult = solve(input_string)  \nprint(result)\n```\n\n4. **Поиск почтовых адресов**    \nВы разрабатываете модуль для обработки текстовых данных. Вам необходимо извлечь из текста список всех уникальных email-адресов. \n\n**Email-адрес считается допустимым, если он:** \n- Содержит только латинские буквы (в любом регистре), цифры, символы «.», «-» и «_»;\nНачинается с буквы или цифры;\n- Содержит один символ «@»;\n- Завершается одним из следующих способов: .ru, .com, .org или .net\n\n**Формат ввода:**  \nОдна строка текста произвольной длины до 1000 символов.  \n\n**Формат вывода:**  \nЕсли найдены email-адреса, каждый найденный адрес выводится на отдельной строке. Если адресов не найдено, выводится «‎Не найдено».  \n\n**Пример 1**  \n•\t_Входные данные_:  \nЭто текст с email user123@example.com и user456@mail.ru, но не example.com\n\n•\t_Выходные данные:_  \nuser123@example.com  \nuser456@mail.ru  \n\n**Пример 2**  \n•\t_Входные данные:_  \nЭто пример текста с невалидными адресами: user@, @domain.com\n\n•\t_Выходные данные:_  \nНе найдено\n\n**Макет решения:**\n```\nimport re  \nclass TextProcessor:    \n    def __init__(self, text):    \n        self.text = text\n\n    def extract_emails(self):\n        \"\"\"Ваш код\"\"\"\n        pass\n\ninput_text = input()\n\"\"\"Ваш код\"\"\"\n``` \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkonstantinkalinichenko%2Fmedium_tasks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkonstantinkalinichenko%2Fmedium_tasks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkonstantinkalinichenko%2Fmedium_tasks/lists"}