Код Middle Исключения и контекстные менеджеры обновлено
Собрать все ошибки валидации
Условие
Напишите validate(user): проверьте словарь пользователя и верните список всех ошибок (не останавливаясь на первой) в порядке проверок: "name: required" если нет непустой строки name; "age: must be int" если age не int (или bool); "age: out of range" если age int вне 0..150; "email: invalid" если в email нет ровно одного @ с непустыми частями. Отсутствующий age или email считается ошибкой своего пункта.
Примеры
validate({"name":"Аня","age":30,"email":"a@b.ru"}) // []
validate({}) // ["name: required", "age: must be int", "email: invalid"]
validate({"name":" ","age":200,"email":"@b"}) // ["name: required", "age: out of range", "email: invalid"]
Как подойти
Подсказки: 2
- Не используйте исключения для потока управления, копите список.
isinstance(True, int)истинно.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.