lesson_010
Задание 1 пятый элемент
Умножить константу BRUCE_WILLIS на пятый элемент строки, введенный пользователем
Ообернуть код и обработать исключительные ситуации для произвольных входных параметров
- ValueError - невозможно преобразовать к числу
- IndexError - выход за границы списка
- остальные исключения для каждого типа исключений написать на консоль соотв. сообщение
Задание 2 День сурка
ENLIGHTENMENT_CARMA_LEVEL = 777
Напишите функцию one_day() которая возвращает количество кармы от 1 до 7 и может выкидывать исключения:
- IamGodError
- DrunkError
- CarCrashError
- GluttonyError
- DepressionError
- SuicideError Одно из этих исключений выбрасывается с вероятностью 1 к 13 каждый день
Функцию оберните в бесконечный цикл, выход из которого возможен только при накоплении кармы до уровня ENLIGHTENMENT_CARMA_LEVEL. Исключения обработать и записать в лог. При создании собственных исключений максимально использовать функциональность базовых встроенных исключений.
задание 3 работа с файлом регистрации
Есть файл с протоколом регистраций пользователей на сайте - registrations.txt Каждая строка содержит: ИМЯ ЕМЕЙЛ ВОЗРАСТ, разделенные пробелами Например: Василий [email protected] 27
Надо проверить данные из файла, для каждой строки:
- присутсвуют все три поля
- поле имени содержит только буквы
- поле емейл содержит @ и .
- поле возраст является числом от 10 до 99
В результате проверки нужно сформировать два файла
- registrations_good.log для правильных данных, записывать строки как есть
- registrations_bad.log для ошибочных, записывать строку и вид ошибки.
Для валидации строки данных написать метод, который может выкидывать исключения:
- НЕ присутсвуют все три поля: ValueError
- поле имени содержит НЕ только буквы: NotNameError (кастомное исключение)
- поле емейл НЕ содержит @ и .(точку): NotEmailError (кастомное исключение)
- поле возраст НЕ является числом от 10 до 99: ValueError Вызов метода обернуть в try-except.