Друзья, мы начинаем новый кодинг-марафон среди подписчиков.
Марафон будет состоять из 10 задач.
Призы:
1 место: 3000 руб
2 место: 1500 руб
3 место: 1000 руб
Каждую неделю мы будем публиковать 1 задачу по питону, регуляркам, алгоритмам и другим темам. За правильное решение задачи вы получаете 10 баллов.
Мы так же спонсируем приведение новых участников в наш телеграм-канал @pythonboost. За каждого нового участника, пришедшего по вашему приглашению, мы добавляем вам 2 балла. В теории можно выиграть конкурс, не решив ни одной задачи (но это будет печально).
Для подтверждения того, что именно вы привели человека - просто пишите его ник или телефон администратору конкурса @lex_draven
Требования конкурса:
1. Решение оформлять тут https://repl.it/languages/python3
2. Функция должна возвращать результат, а не печатать его
3. Все примеры из задачи(если они есть) должны работать с вашим кодом
4. Не пишите ничего лишнего в сообщениях, просто ссылка и номер задачи.
P.S Задачи будут проверяться 1 раз в неделю, так что не расстраивайтесь, если сразу нет быстрого ответа.
Всем удачи.
#марафон
Марафон будет состоять из 10 задач.
Призы:
1 место: 3000 руб
2 место: 1500 руб
3 место: 1000 руб
Каждую неделю мы будем публиковать 1 задачу по питону, регуляркам, алгоритмам и другим темам. За правильное решение задачи вы получаете 10 баллов.
Мы так же спонсируем приведение новых участников в наш телеграм-канал @pythonboost. За каждого нового участника, пришедшего по вашему приглашению, мы добавляем вам 2 балла. В теории можно выиграть конкурс, не решив ни одной задачи (но это будет печально).
Для подтверждения того, что именно вы привели человека - просто пишите его ник или телефон администратору конкурса @lex_draven
Требования конкурса:
1. Решение оформлять тут https://repl.it/languages/python3
2. Функция должна возвращать результат, а не печатать его
3. Все примеры из задачи(если они есть) должны работать с вашим кодом
4. Не пишите ничего лишнего в сообщениях, просто ссылка и номер задачи.
P.S Задачи будут проверяться 1 раз в неделю, так что не расстраивайтесь, если сразу нет быстрого ответа.
Всем удачи.
#марафон
Кодинг-марафон. Задача № 1.
Условия конкурса читайте в закрепленной сверху записи канала.
Приз: 10 баллов.
Задание: Напишите функцию, которая будет принимать номер кредитной карты и показывать только последние 4 цифры. Остальные цифры должны заменяться звездочками.
Примечания:
- вернуть нужно строку
- длина строки должна быть такой же, как у введенной.
Примеры:
#задача #марафон
Условия конкурса читайте в закрепленной сверху записи канала.
Приз: 10 баллов.
Задание: Напишите функцию, которая будет принимать номер кредитной карты и показывать только последние 4 цифры. Остальные цифры должны заменяться звездочками.
Примечания:
- вернуть нужно строку
- длина строки должна быть такой же, как у введенной.
Примеры:
card_hide("1234123456785678") ➞ "************5678"Присылаем номер задачи и ссылку на код сюда - @lex_draven
card_hide("8754456321113213") ➞ "************3213"
card_hide("35123413355523") ➞ "**********5523"
#задача #марафон
Кодинг-марафон. Решение Задачи 1
Два варианта создания функций, заменяющих часть номера кредитной карты звездочками, можно посмотреть на сайте наших партнеров из pythonist.ru
Смотреть решения
Условие конкурса в закрепе канала.
P.S. Первую задачу решило такое большое кол-во человек, что мы не смогли проверить всех. Все те, кто решил задачу и прислал решения, получают по 10 баллов. В конце конкурса мы будем перепроверять решения всех 3-х победителей, чтобы не получилось так, что они не решили какие-то задачи.
Если вы хотите видеть решения подписчиков, напиши в комментариях. Любые идеи к конкурсу также приветствуются.
#задача #марафон
Два варианта создания функций, заменяющих часть номера кредитной карты звездочками, можно посмотреть на сайте наших партнеров из pythonist.ru
Смотреть решения
Условие конкурса в закрепе канала.
P.S. Первую задачу решило такое большое кол-во человек, что мы не смогли проверить всех. Все те, кто решил задачу и прислал решения, получают по 10 баллов. В конце конкурса мы будем перепроверять решения всех 3-х победителей, чтобы не получилось так, что они не решили какие-то задачи.
Если вы хотите видеть решения подписчиков, напиши в комментариях. Любые идеи к конкурсу также приветствуются.
#задача #марафон
Кодинг-марафон. Задача № 2.
Условия конкурса читайте в закрепленной сверху записи канала.
Приз: 10 баллов.
Задание: Напишите функцию, которая будет принимать словарь с именем студента и списком его оценок (типа
Примечание: входящие данные всегда будут валидны, список никогда не будет пустым.
Примеры:
#задача #марафон
Условия конкурса читайте в закрепленной сверху записи канала.
Приз: 10 баллов.
Задание: Напишите функцию, которая будет принимать словарь с именем студента и списком его оценок (типа
{ "name": "John", "notes": [3, 5, 4] }
) и возвращать словарь с именем студента и его самой высокой оценкой ({ "name": "John", "top_note": 5 }
).Примечание: входящие данные всегда будут валидны, список никогда не будет пустым.
Примеры:
top_note({ "name": "John", "notes": [3, 5, 4] }) ➞ { "name": "John", "top_note": 5 }
top_note({ "name": "Max", "notes": [1, 4, 6] }) ➞ { "name": "Max", "top_note": 6 }
top_note({ "name": "Zygmund", "notes": [1, 2, 3] }) ➞ { "name": "Zygmund", "top_note": 3 }
Присылаем номер задачи и ссылку на код сюда - @lex_draven#задача #марафон
Кодинг-марафон. Решение Задачи 2
Вариант создания функции, возвращающей словарь с именем студента и его наилучшей оценкой, можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решение
Условие конкурса в закрепе канала.
#задача #марафон
Вариант создания функции, возвращающей словарь с именем студента и его наилучшей оценкой, можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решение
Условие конкурса в закрепе канала.
#задача #марафон
Кодинг-марафон. Задача № 3.
Условия конкурса читайте в закрепленной сверху записи канала.
Приз: 10 баллов.
Задание: Напишите функцию, которая будет принимать целое положительное число и определять, делится ли оно нацело на сумму цифр этого числа.
Примеры:
is_divisible(75) ➞ False
# 7 + 5 = 12
# 75 не делится нацело на 12
is_divisible(171) ➞ True
# 1 + 7 + 1 = 9
# 171 делится на 9 без остатка
is_divisible(481) ➞ True
is_divisible(89) ➞ False
is_divisible(516) ➞ True
is_divisible(200) ➞ True
Присылаем номер задачи и ссылку на код сюда - @lex_draven
#задача #марафон
Условия конкурса читайте в закрепленной сверху записи канала.
Приз: 10 баллов.
Задание: Напишите функцию, которая будет принимать целое положительное число и определять, делится ли оно нацело на сумму цифр этого числа.
Примеры:
is_divisible(75) ➞ False
# 7 + 5 = 12
# 75 не делится нацело на 12
is_divisible(171) ➞ True
# 1 + 7 + 1 = 9
# 171 делится на 9 без остатка
is_divisible(481) ➞ True
is_divisible(89) ➞ False
is_divisible(516) ➞ True
is_divisible(200) ➞ True
Присылаем номер задачи и ссылку на код сюда - @lex_draven
#задача #марафон
Кодинг-марафон. Решение Задачи 3
Два варианта написания функции, проверяющей, делится ли число на сумму своих цифр, можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решения
Условие конкурса в закрепе канала.
#задача #марафон
Два варианта написания функции, проверяющей, делится ли число на сумму своих цифр, можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решения
Условие конкурса в закрепе канала.
#задача #марафон
Кодинг-марафон. Задача № 4.
Условия конкурса читайте в закрепленной сверху записи канала.
Приз: 10 баллов.
Задание: Напишите функцию для проверки, является ли строка валидным PIN-кодом.
Валидный PIN-код:
- состоит ровно из 4 или 6 символов
- состоит только из цифр (0-9)
- не содержит пробелов.
Примечание: на вход всегда приходит строка (не нужно это проверять), при вводе пустых строк результат должен быть False. Функция не должна бросать исключений
Примеры:
#задача #марафон
Условия конкурса читайте в закрепленной сверху записи канала.
Приз: 10 баллов.
Задание: Напишите функцию для проверки, является ли строка валидным PIN-кодом.
Валидный PIN-код:
- состоит ровно из 4 или 6 символов
- состоит только из цифр (0-9)
- не содержит пробелов.
Примечание: на вход всегда приходит строка (не нужно это проверять), при вводе пустых строк результат должен быть False. Функция не должна бросать исключений
Примеры:
is_valid("1234") ➞ TrueПрисылаем номер задачи и ссылку на код сюда - @lex_draven
is_valid("45135") ➞ False
is_valid("89abc1") ➞ False
is_valid("900876") ➞ True
is_valid(" 4983") ➞ False
#задача #марафон
Кодинг-марафон. Решение Задачи 4
Варианты написания функции для проверки PIN-кода можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решения
Условие конкурса в закрепе канала.
#задача #марафон
Варианты написания функции для проверки PIN-кода можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решения
Условие конкурса в закрепе канала.
#задача #марафон
Кодинг-марафон. Задача № 5.
Условия конкурса читайте в закрепленной сверху записи канала.
Приз: 10 баллов.
Задание: Напишите функцию, которая будет принимать в качестве аргументов название страны (name) и ее площадь (area) и возвращать процентное отношение площади страны к площади земной суши.
Примечания:
- площадь земной суши составляет 148940000 кв. км
- результат нужно округлить до сотых.
- строка будет не пустой, площадь всегда будет целым положительным числом (не нужно это проверять!)
Примеры:
area_of_country("Russia", 17098242) ➞ "Russia is 11.48% of the total world's landmass"
area_of_country("USA", 9372610) ➞ "USA is 6.29% of the total world's landmass"
area_of_country("Iran", 1648195) ➞ "Iran is 1.11% of the total world's landmass"
Присылаем номер задачи и ссылку на код сюда - @lex_draven
#задача #марафон
Условия конкурса читайте в закрепленной сверху записи канала.
Приз: 10 баллов.
Задание: Напишите функцию, которая будет принимать в качестве аргументов название страны (name) и ее площадь (area) и возвращать процентное отношение площади страны к площади земной суши.
Примечания:
- площадь земной суши составляет 148940000 кв. км
- результат нужно округлить до сотых.
- строка будет не пустой, площадь всегда будет целым положительным числом (не нужно это проверять!)
Примеры:
area_of_country("Russia", 17098242) ➞ "Russia is 11.48% of the total world's landmass"
area_of_country("USA", 9372610) ➞ "USA is 6.29% of the total world's landmass"
area_of_country("Iran", 1648195) ➞ "Iran is 1.11% of the total world's landmass"
Присылаем номер задачи и ссылку на код сюда - @lex_draven
#задача #марафон
Кодинг-марафон. Решение Задачи 5
Варианты написания функции для вычисления процентного отношения площади страны к площади земной суши можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решения
Условие конкурса в закрепе канала.
#задача #марафон
Варианты написания функции для вычисления процентного отношения площади страны к площади земной суши можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решения
Условие конкурса в закрепе канала.
#задача #марафон
Кодинг-марафон. Задача № 6.
Условия конкурса - в закрепленной сверху записи канала.
Приз: 10 баллов.
Задание:
В БД предприятия номера телефонов хранятся как попало и вам поручили написать функцию, которая приведёт их к одному формату:
Сигнатура
- помимо цифр может содержать дефисы, пробелы, скобки и знак + (но + только первым символом)
- номер всегда валиден (11 цифр)
- номер всегда начинается с 8 или +7, причем + может быть только в начале номера
- не может быть 2 идущих подряд дефисов, скобок или пробелов
Примеры:
format_numbers('+79091011010') == '+7(909)101-10-10'
format_numbers('8(909)1011010') == '+7(909)101-10-10'
format_numbers('+7 909 101-10-10') == '+7(909)101-10-10'
Присылаем номер задачи и ссылку на код сюда - @lex_draven
#задача #марафон
Условия конкурса - в закрепленной сверху записи канала.
Приз: 10 баллов.
Задание:
В БД предприятия номера телефонов хранятся как попало и вам поручили написать функцию, которая приведёт их к одному формату:
+7(909)101-10-10
Функция должна называться format_numbers
, она принимает на вход строку (исходный номер) и возвращает строку (номер в нужном формате).Сигнатура
def format_numbers(phone_number: str) -> str:
Примечания по исходному номеру:- помимо цифр может содержать дефисы, пробелы, скобки и знак + (но + только первым символом)
- номер всегда валиден (11 цифр)
- номер всегда начинается с 8 или +7, причем + может быть только в начале номера
- не может быть 2 идущих подряд дефисов, скобок или пробелов
Примеры:
format_numbers('+79091011010') == '+7(909)101-10-10'
format_numbers('8(909)1011010') == '+7(909)101-10-10'
format_numbers('+7 909 101-10-10') == '+7(909)101-10-10'
Присылаем номер задачи и ссылку на код сюда - @lex_draven
#задача #марафон
Кодинг-марафон. Решение Задачи 6
Варианты написания функции для преобразования телефонных номеров можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решения
Условие конкурса в закрепе канала.
#задача #марафон
Варианты написания функции для преобразования телефонных номеров можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решения
Условие конкурса в закрепе канала.
#задача #марафон
Кодинг-марафон. Задача № 7.
Условия конкурса - в закрепленной сверху записи канала.
Приз: 10 баллов.
Задание:
Напишите функцию, которая будет возвращать True, если строка, являющаяся аргументом функции, содержит возрастающие И последовательные числа. Например, ‘123’ (1-2-3) или ‘101112’ (10-11-12).
Сигнатура —
Примечания:
- Функция должна возвращать (не печатать!) только True\False, она не должна бросать исключений.
- Предполагается, что строка-аргумент никогда не пустая и всегда содержит минимум 2 числа, например ’10’ — валидная строка.
- Строка-аргумент будет содержать только числа.
Примеры:
#задача #марафон
Условия конкурса - в закрепленной сверху записи канала.
Приз: 10 баллов.
Задание:
Напишите функцию, которая будет возвращать True, если строка, являющаяся аргументом функции, содержит возрастающие И последовательные числа. Например, ‘123’ (1-2-3) или ‘101112’ (10-11-12).
Сигнатура —
def ascending(value: str) -> bool:
Примечания:
- Функция должна возвращать (не печатать!) только True\False, она не должна бросать исключений.
- Предполагается, что строка-аргумент никогда не пустая и всегда содержит минимум 2 числа, например ’10’ — валидная строка.
- Строка-аргумент будет содержать только числа.
Примеры:
ascending("232425") ➞ TrueПрисылаем номер задачи и ссылку на код сюда - @lex_draven
# строку можно представить как 23, 24, 25, а эти числа следуют друг за другом по возрастанию
ascending("2324256") ➞ False
# шестерка в конце ломает возрастающий ряд
ascending("444445") ➞ True
# строку можно представить как 444 и 445
#задача #марафон
Кодинг-марафон. Решение Задачи 7
Код функции, проверяющей, содержит ли переданная в нее строка возрастающие и последовательные числа, можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решение
Условие конкурса в закрепе канала.
#задача #марафон
Код функции, проверяющей, содержит ли переданная в нее строка возрастающие и последовательные числа, можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решение
Условие конкурса в закрепе канала.
#задача #марафон
Кодинг-марафон. Задача № 8.
Условия конкурса - в закрепленной записи канала.
Приз: 10 баллов.
Задание:
Напишите функцию flatten, которая будет принимать на вход список с любой вложенностью и глубину распаковки. Вернуть она должна список, где вложенные элементы соответствующего уровня распакованы, то есть вложенное превращается в плоское.
Если 2-й аргумент не передан, все вложенные списки должны быть распакованы.
Сигнатура:
- Функция не должна бросать исключений!
- Глубина распаковки всегда положительна (если указана).
- Если параметр глубины больше реальной вложенности, функция просто распаковывает все списки.
- Вложены могут быть только списки (не кортежи или др. контейнеры).
Примеры:
#задача #марафон
Условия конкурса - в закрепленной записи канала.
Приз: 10 баллов.
Задание:
Напишите функцию flatten, которая будет принимать на вход список с любой вложенностью и глубину распаковки. Вернуть она должна список, где вложенные элементы соответствующего уровня распакованы, то есть вложенное превращается в плоское.
Если 2-й аргумент не передан, все вложенные списки должны быть распакованы.
Сигнатура:
def flatten(a_list:list, depth:int=0)->list
Примечания:- Функция не должна бросать исключений!
- Глубина распаковки всегда положительна (если указана).
- Если параметр глубины больше реальной вложенности, функция просто распаковывает все списки.
- Вложены могут быть только списки (не кортежи или др. контейнеры).
Примеры:
flatten([1, [2, 3]]) ➞ [1, 2, 3]Присылаем номер задачи и ссылку на код сюда - @lex_draven
flatten([1, [2, [3]]], depth=1) ➞ [1, 2, [3]]
flatten([1, [2, [3]]], depth=2) ➞ [1, 2, 3]
flatten([1, [2, 3]], depth=100) ➞ [1, 2, 3]
#задача #марафон
Кодинг-марафон. Решение Задачи 8
Код функции для распаковки вложенных списков можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решение
Условие конкурса в закрепе канала.
#задача #марафон
Код функции для распаковки вложенных списков можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решение
Условие конкурса в закрепе канала.
#задача #марафон
Кодинг-марафон. Задача № 9.
Условия конкурса - в закрепленной записи канала.
Приз: 10 баллов.
Задание:
Напишите функцию, которая будет возвращать строку, представляющую собой ASCII-рисунок ромба. На вход функция получает одну букву латинского алфавита в верхнем регистре и один символ, который будет использован в качестве фона для рисунка:
- КАЖДАЯ строка рисунка заканчивается символом '\n',
- на вход может подаваться любая из 26 букв латинского алфавита и любой ASCII-символ как параметр background,
- предполагается, что ввод всегда валиден, не нужно проверок и исключений.
Присылаем номер задачи и ссылку на код сюда - @lex_draven
#задача #марафон
Условия конкурса - в закрепленной записи канала.
Приз: 10 баллов.
Задание:
Напишите функцию, которая будет возвращать строку, представляющую собой ASCII-рисунок ромба. На вход функция получает одну букву латинского алфавита в верхнем регистре и один символ, который будет использован в качестве фона для рисунка:
>> diamond('A')Сигнатура:
A
>> diamond('B')
A
B B
A
>> diamond('D', '-')
---A---
--B-B--
-C---C-
D-----D
-C---C-
--B-B--
---A---
def diamond(letter: str, background: str=' ') -> str:
Примечания: - КАЖДАЯ строка рисунка заканчивается символом '\n',
- на вход может подаваться любая из 26 букв латинского алфавита и любой ASCII-символ как параметр background,
- предполагается, что ввод всегда валиден, не нужно проверок и исключений.
Присылаем номер задачи и ссылку на код сюда - @lex_draven
#задача #марафон
Кодинг-марафон. Решение Задачи 9
Код функции, возвращающей строку - ASCII-рисунок ромба, можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решение
Условие конкурса в закрепе канала.
#задача #марафон
Код функции, возвращающей строку - ASCII-рисунок ромба, можно посмотреть на сайте наших партнеров из pythonist.ru.
Смотреть решение
Условие конкурса в закрепе канала.
#задача #марафон
Кодинг-марафон. Задача № 10
Привет, друзья! Наш марафон подошел к концу. Мы представляем вам последнюю, десятую задачу. Решения принимаются до 12:00 мск 26 августа.
Условия конкурса - в закрепленной записи канала.
Приз: 10 баллов.
Задание:
Для транспортирования материалов из цеха А в цех В используется конвейер. Материалы упаковываются в одинаковые контейнеры и размещаются на ленте один за одним в порядке изготовления в цехе А.
Каждый контейнер имеет степень срочности обработки в цехе В — float-значение, где наименьшее означает наивысший приоритет. То есть приоритет 1.0 должен выполняться раньше, чем 9.0.
Для упорядочивания контейнеров по степени срочности используют накопитель, который находится в конце конвейера перед входом в цех В.
Накопитель работает пошагово, на каждом шаге возможны следующие действия:
- накопитель перемещает первый контейнер из ленты в цех В;
- накопитель перемещает первый контейнер из ленты в склад (в складе каждый следующий контейнер помещается на предыдущий);
- накопитель перемещает верхний контейнер из склада в цех В.
Напишите программу, которая по последовательности контейнеров определит, можно ли упорядочить их по степени срочности, пользуясь описанным накопителем. Предполагается, что на вход всегда приходит список с валидными значениями или пустой.
Сигнатура:
Ничего не импортируем, исключения не кидаем!
Примеры:
work([2.9, 2.1]) == True
work([5.6, 9.0, 2.0]) == False
work([ ]) == True
work([1, 1, 1]) == True
Присылаем номер задачи и ссылку на код сюда - @lex_draven
#задача #марафон
Привет, друзья! Наш марафон подошел к концу. Мы представляем вам последнюю, десятую задачу. Решения принимаются до 12:00 мск 26 августа.
Условия конкурса - в закрепленной записи канала.
Приз: 10 баллов.
Задание:
Для транспортирования материалов из цеха А в цех В используется конвейер. Материалы упаковываются в одинаковые контейнеры и размещаются на ленте один за одним в порядке изготовления в цехе А.
Каждый контейнер имеет степень срочности обработки в цехе В — float-значение, где наименьшее означает наивысший приоритет. То есть приоритет 1.0 должен выполняться раньше, чем 9.0.
Для упорядочивания контейнеров по степени срочности используют накопитель, который находится в конце конвейера перед входом в цех В.
Накопитель работает пошагово, на каждом шаге возможны следующие действия:
- накопитель перемещает первый контейнер из ленты в цех В;
- накопитель перемещает первый контейнер из ленты в склад (в складе каждый следующий контейнер помещается на предыдущий);
- накопитель перемещает верхний контейнер из склада в цех В.
Напишите программу, которая по последовательности контейнеров определит, можно ли упорядочить их по степени срочности, пользуясь описанным накопителем. Предполагается, что на вход всегда приходит список с валидными значениями или пустой.
Сигнатура:
def work(tasks: list) -> bool:
принимает на вход список float и возвращает булин.Ничего не импортируем, исключения не кидаем!
Примеры:
work([2.9, 2.1]) == True
work([5.6, 9.0, 2.0]) == False
work([ ]) == True
work([1, 1, 1]) == True
Присылаем номер задачи и ссылку на код сюда - @lex_draven
#задача #марафон