Верни True, если человеку 18 лет или больше.
def is_adult(age): return age >= 18 - пройден:
is_adult(18)True - пройден:
is_adult(17)False - пройден:
is_adult(150)True - пройден:
is_adult(0)False
Koddo — практика программирования на Python, JavaScript и SQL прямо в браузере. Автопроверка покажет, где код ломается, а ИИ-подсказка поможет самому найти причину.
Верни True, если человеку 18 лет или больше.
def is_adult(age): return age >= 18 is_adult(18) True is_adult(17) False is_adult(150) True is_adult(0) False Город записан в разном регистре: фильтр обязан ловить и «Казань», и «казань».
SELECT name, emailFROM customersWHERE city ILIKE 'казань'ORDER BY name; | name | |
|---|---|
| Борис Ельцов | boris@example.com |
| Никита Ершов | nikita@example.com |
Скрой середину трек-номера: первые четыре символа, многоточие и последние два.
function maskTrackingCode(code) { return code.slice(0, 4) + "…" + code.slice(-2);} maskTrackingCode("RB728900143RU7") "RB72…U7" maskTrackingCode("CD405112389RU2") "CD40…U2" Посчитай, сколько пользователей заходили не позже чем window дней назад.
def count_active(days_since_login, window): active = 0 for days in days_since_login: if days <= window: active += 1 return active count_active([3, 30, 0, 7], 7) 3 count_active([10, 20, 30], 7) 0 count_active([7, 7, 8], 7) 2 Найди клиентов без почты или города: NULL нельзя поймать через «= NULL».
SELECT name, cityFROM customersWHERE email IS NULL OR city IS NULLORDER BY name; | name | city |
|---|---|
| Глеб Шилов | Москва |
| Кира Мельник | NULL |
| Ольга Данилова | Тверь |
Собери строку лога: уровень заглавными, части через разделитель, без частей — прочерк.
def format_log_line(level: str, *parts, sep: str = " | ") -> str: if not parts: return f"{level.upper()}: -" return f"{level.upper()}: " + sep.join(parts) format_log_line("warn", "диск заполнен на 90%") "WARN: диск заполнен на 90%" format_log_line("error", "нет сети", "повтор через 5 с", sep=" / ") "ERROR: нет сети / повтор через 5 с" format_log_line("debug") "DEBUG: -" Скользящее окно: не больше limit запросов за последние window секунд.
def prune_window(timestamps, now, window): cutoff = now - window return [t for t in timestamps if t > cutoff] def is_allowed(timestamps, now, window, limit): recent = prune_window(timestamps, now, window) return len(recent) < limit is_allowed([150, 160], 170, 60, 3) True is_allowed([150, 155, 160], 161, 60, 3) False is_allowed([10, 20, 30], 75, 60, 3) True Витрина сменяет решённые задачи из курсов и сборников Koddo. У каждой — условие, код решения и пройденные тесты; название ведёт на страницу курса или сборника.
Каждая задача — маленькая функция или запрос с проверяемым результатом. Эти три открыты без регистрации.
["a", "b", "a", "c", "b"]вход: события ["a", "b", "c"]ожидаемый результат решить задачу 75вход: секунды "1:15"ожидаемый результат решить задачу sokolov@mail.example ×2, NULL ×2вход: почты откликов sokolov@mail.example, 2ожидаемый результат решить задачу Без регистрации код запускается на примерах сколько угодно раз, а полная проверка доступна один раз. Аккаунт сохраняет прогресс и историю решений.
В проектах каждая задача — часть будущей программы. Начинаешь с маленькой функции, а в последней соединяешь написанное.
Соберёшь поиск по текстам: от обработки слов до сортировки результатов по релевантности. Добавишь поиск фраз и подсветку совпадений.
Знаешь функции, списки и словари Python; алгоритмы поиска разберёшь по ходу
посмотреть проект и задачичему научишься
Первая задача режет текст на слова. Последняя — search(): конвейер, индекс, ранжирование и пагинация в одной функции.
Соберёшь Telegram-бота для учёта привычек: команды, отметки, серии дней и календарь. Добавишь сохранение данных между запусками.
Знаешь функции, списки и словари Python; опыт создания ботов не нужен
посмотреть проект и задачичему научишься
Первая задача разбирает сообщение на команду и аргументы. В последней собираешь маршрутизатор и запускаешь бота со своим токеном.
Соберёшь логику музыкального сервиса: каталог, плейлисты и очередь треков. Добавишь статистику прослушиваний и генератор микса.
Знаешь переменные, функции и массивы JavaScript; работа с DOM не нужна
посмотреть проект и задачичему научишься
Первая задача собирает подпись «Исполнитель — Название». В последней семь готовых модулей складываются в «Микс дня».
Ассистент видит условие, твой код и результаты запуска. Он подсказывает, что проверить, — исправление пишешь ты.
slugify("Привет, мир!")
Где искать ошибку?
Посмотри на запятую и пробел рядом. Это две границы слов или одна?
privet-mirтест пройден
Так проходит первый урок по Python. Аккаунт понадобится, чтобы сохранить прогресс.
Урок «Знакомство: print, переменные и input» открывается сразу. Первое задание — нажать «запустить» и посмотреть на вывод.
Напишешь программу, которая спрашивает имя и год рождения и считает возраст. Каждый шаг проверяется сразу.
Откроется задача «Сумма позиции в корзине». Отправь решение на тесты и сохрани результат в бесплатном аккаунте.
Ещё на сайте: 400+ задач по PythonSQL-тренажёрHTML/CSS-тренажёрсправочникшпаргалкикарты навыков
От первых задач до подготовки к собеседованию. Выбирай возможности под свою цель.
Для первых задач и знакомства с платформой
Без карты и подписки
10 ИИ-кредитов в месяц хватит на 10 ответов ассистента
Для регулярной практики и сложных задач
первый месяц — 245 ₽
150 ИИ-кредитов в месяц хватит на 150 ответов ассистента
Для подготовки к собеседованиям
первый месяц — 995 ₽
400 ИИ-кредитов в месяц хватит на 400 ответов ассистента
Скидка 50% действует только на первую покупку месячного тарифа или кредитов. Затем — обычная цена. На годовой Premium скидка не распространяется.
Оплата проходит через ЮKassa. Автопродление отключается в настройках подписки в любой момент, доступ остаётся до конца оплаченного периода. Документы: реквизиты, оферта.
Кредиты общие для всех ИИ-инструментов. Полное мок-собеседование — от 25 кредитов, с Карьерой — от 15.
В каждом курсе первый модуль бесплатный, в каждом сборнике — первая тема. Без регистрации работают песочницы Python и SQL, первые задания SQL- и HTML/CSS-тренажёров и первый урок Python. В аккаунте также доступны задача дня и 10 ИИ-кредитов в месяц — карта не нужна. Расширенный доступ открывается по условиям тарифа.
Да, можно начать без опыта. Первый урок по Python открывается без регистрации и объясняет всё до первого задания, а код запускается прямо в браузере. После уроков можно перейти к задачам с автопроверкой.
Да, на сайте есть демозадачи. Код можно запускать на примерах без ограничений, а отправить на полную проверку — один раз в гостевом режиме. Для сохранения прогресса и истории решений нужен аккаунт.
Нет. Задачи по Python, JavaScript и SQL решаются прямо в браузере: редактор и проверка уже встроены. Язык указан в каждой задаче.
Посмотри результаты проверки и обратись к ИИ-ассистенту: он видит условие, твой код и результаты запуска. Он подскажет, что проверить, и поможет разобраться в причине ошибки. Подсказки расходуют ИИ-кредиты и доступны после подтверждения почты.
Да. Можно закрывать пробелы по курсам и сборникам, проверять знания в тестах навыков и тренироваться на собеседованиях с ИИ. Доступна одна бесплатная пробная сессия; полные собеседования расходуют ИИ-кредиты.
Урок «Знакомство: print, переменные и input» открывается сразу — без регистрации и установки. Аккаунт понадобится, чтобы сохранить прогресс.