16 вопросов, около 12 минут
Итоговый тест по курсу «Python для автоматизации рутины»
16 вопросов по автоматизации на Python с разбором ответов: файлы и папки, CSV и Excel, отчёты из нескольких таблиц, регулярные выражения и даты, рассылка писем, API и запуск по расписанию.
Тест по всему курсу
Проверьте, как усвоился курс: вопросы по всем урокам, а в конце — разбор ошибок и темы, которые стоит повторить.
-
Какая задача хуже всего подходит для автоматизации?
Слоган — творческая разовая задача без чётких правил. Остальные повторяются и делаются по инструкции.
-
В начале строки терминала появилось (.venv). Что это значит?
Команда activate включает окружение. Пока оно включено, python и pip работают с копией Python и библиотеками этого проекта.
-
Как создать папку «Фото» и не получить ошибку, если она уже есть?
mkdir() создаёт папку, а exist_ok=True говорит не считать ошибкой, если она уже существует.
-
Что вернёт Path("отчёт.xlsx").stem?
stem — имя файла без расширения. Расширение лежит в suffix, полное имя — в name.
-
Как с модулем csv получить каждую строку как словарь с заголовками в ключах?
DictReader берёт заголовки из первой строки и превращает каждую следующую строку в словарь «заголовок — значение».
-
Как в openpyxl взять первый лист книги, не зная его названия?
wb.active — активный лист, в новой книге это первый лист. По названию лист берут так: wb["Продажи"].
-
Скрипт собирает выручку по товарам в словарь. Какой строкой прибавить сумму очередной продажи?
get(product, 0) возвращает накопленную сумму или 0 для нового товара, и к ней прибавляется новая продажа. Первый вариант затирал бы прошлые суммы.
-
Как сделать жирной строку заголовков на листе ws?
ws[1] — первая строка листа. У каждой ячейки задаём шрифт Font(bold=True) из openpyxl.styles.
-
Какой шаблон найдёт в тексте год из четырёх цифр?
\d — цифра, {4} — ровно четыре раза подряд. \D, наоборот, означает «не цифра».
-
delivery — дата поставки. Как получить дату на 30 дней позже?
К дате прибавляют timedelta — промежуток времени. Просто прибавить число к дате нельзя.
-
Что делает server.login(SENDER, os.environ["MAIL_PASSWORD"])?
login() входит в ящик на почтовом сервере. Пароль берётся из переменной окружения, поэтому его нет в тексте скрипта.
-
Зачем перед рассылкой отправить письмо себе?
Пробный запуск показывает адреса и темы, а письмо себе — то, что увидит получатель: текст, имя, вложение.
-
Что делает response.raise_for_status()?
Если сервер вернул, например, 404 или 500, raise_for_status() вызовет исключение, и скрипт не будет работать с неправильным ответом.
-
Курс валюты в ответе — Value 25.5, Nominal 10. Сколько стоит одна единица валюты?
Курс указан за 10 единиц, поэтому за одну — Value ÷ Nominal = 25,5 ÷ 10 = 2,55 ₽.
-
Чем заменить print() в скрипте, который работает по расписанию?
При запуске по расписанию экран никто не видит. Журнал в файле сохраняет, что скрипт сделал и где споткнулся.
-
Какой Python указать в Планировщике заданий для скрипта, который использует openpyxl?
Библиотеки проекта установлены в его виртуальное окружение. Другой Python их не увидит, и скрипт упадёт с ошибкой импорта.
А теперь о вас
Три вопроса без правильных ответов — о том, подходит ли вам это направление.
Что дальше
Если тема зацепила, продолжить можно так.