Тренажёр Python для тестировщиков

Основы языка и ООП, нужные для автотестов: от f-строк и словарей до классов и модулей. Решение проверяется скрытыми тестами.

Задач
80
Среда
Python 3.12 в браузере
Тариф
Базовый на выбор или Pro
yqw / python / простой
live
Рабочая область тренажёра Python: задача простого уровня и Python 3.12 в браузере

Что тренируем

  • Типы данных, переменные, f-строки и операторы: str, int, float, bool, None
  • Коллекции: списки, словари, кортежи, множества, срезы и comprehensions
  • Условия, циклы и функции: if, for, while, def, lambda, *args и **kwargs
  • Классы и ООП: __init__, наследование, super, dataclass, property
  • Исключения, import и модули, mutable и immutable, мини-проекты для автотестов

Как устроена проверка

Код выполняется на Python 3.12 прямо в браузере, проверка — скрытыми тестами. Если решение неверное, видно, какой тест упал; к каждой задаче есть подсказка и карточки справочника.

Среда: Python 3.12 в браузере. Всё работает в браузере, устанавливать ничего не нужно.

Уровни и число задач

Четыре уровня. Следующий открывается, когда решена треть задач предыдущего (30 %).

УровеньЗадачОткрывается
Простой20сразу
Средний20после 6 из 20 задач уровня «Простой»
Сложный20после 6 из 20 задач уровня «Средний»
Продвинутый20после 6 из 20 задач уровня «Сложный»

Примеры задач

По задаче с простого и продвинутого уровней и две со среднего, с условием как в тренажёре. Проверка, подсказки и справочник открываются после регистрации.

  • Простой

    Приветствие

    В заготовке заданы переменные name и age. Напечатай две строки:

    первая — Привет, <имя>!, вторая — Через год тебе будет <возраст + 1>.

    Для имени Мира и возраста 7 программа должна вывести:

    Привет, Мира!
    Через год тебе будет 8
    
  • Средний

    Провалившиеся тесты

    Напиши функцию failed_names(results: list[dict]) -> list[str]. Каждый словарь в results содержит ключи name и status. Функция возвращает список имён (по ключу name) тех записей, у которых status равен 'failed', — в том же порядке, в каком они шли во входном списке. Например, failed_names([{'name': 'test_a', 'status': 'passed'}, {'name': 'test_b', 'status': 'failed'}]) → ['test_b']. Для пустого списка, а также если проваленных записей нет, функция возвращает []. Записи со статусом 'skipped' в результат не попадают — только 'failed'.

  • Средний

    Счётчик по статусам

    Напиши функцию count_by_status(results: list[dict]) -> dict[str, int]. Каждый словарь в results содержит ключ status. Функция возвращает словарь: статус → сколько раз он встретился в списке. Например, count_by_status([{'status': 'passed'}, {'status': 'failed'}, {'status': 'passed'}]) → {'passed': 2, 'failed': 1}. Для пустого списка — пустой словарь {}.

  • Продвинутый

    Импорт из своего модуля

    В файле helpers.py (вкладка выше) определена функция slugify(text: str) -> str, которая приводит текст к виду URL-слага: обрезает пробелы по краям, переводит в нижний регистр и заменяет пробелы на дефисы. Она уже импортирована в main.py строкой from helpers import slugify. Напиши функцию article_url(title: str) -> str, которая возвращает slugify(title), обёрнутый в путь статьи: /articles/<слаг>. Используй импортированную функцию slugify — не переписывай её логику вручную. Например, article_url('Hello World') → '/articles/hello-world'.

В каком тарифе

Python входит в три тренажёра на выбор в Базовом и во все тренажёры в Pro. Демо открывает всё.

  • Демо0 ₽

    3 дня бесплатно после регистрации, без карты: все тренажёры и справочник

  • Базовый399 ₽ за 30 дней

    Три тренажёра на выбор на 30 дней

  • Pro999 ₽ за 30 дней

    Все тренажёры и Йова

Другие тренажёры

Все тренажёры · На главную