en
Feedback
Python: задачки и вопросы

Python: задачки и вопросы

Open in Telegram

Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media

Show more
6 961
Subscribers
-124 hours
-47 days
-5630 days
Posts Archive
🧩 Что выведет код?
Anonymous voting

Марк Лутц, «Изучаем Python», глава 36: «В коде используется удобная функция `print_exc` из модуля `traceback`, которая по умолчанию потребляет данные `sys.exc_info`» Исключение уже было перехвачено блоком except Exception. Когда происходит деление на ноль в функции inverse(0), Python генерирует `ZeroDivisionError`, но этот блок except перехватывает исключение и предотвращает его дальнейшее распространение. После перехвата исключения: 1. `traceback.print_exc(file=open('badly.exc', 'w'))` - записывает информацию об ошибке в файл `badly.exc` 2. `print('Bye')` - выполняется нормально, так как исключение уже обработано «traceback.print_exc() потребляет данные sys.exc_info - это означает, что функция извлекает информацию о последнем исключении и форматирует её для вывода, но не прерывает выполнение программы.

🧩 Что выведет код?
Anonymous voting

Марк Лутц, «Изучаем Python», глава 36: «Результат вызова sys. exc inf о, который применялся в предшествующих двух разделах, дает возможность обработчику исключений получать доступ к самому последнему cгенерированному исключению обобщенным образом. Это особенно полезно при использовании пустой конструкции except для слепого перехвата всех исключений, чтобы выяснить, какое исключение было сгенерировано: import sys try: ... except: # sys.exc_info()[0:2] представляет класс и экземпляр исключения Если никакие исключения не обрабатывались, тогда такой вызов возвращает кортеж с тремя значениями None. В противном случае значениями будут (type, value, traceback): — type — класс обрабатываемого исключения; — value — экземпляр класса исключения, который был сгенерирован; — traceback — объект трассировки, который представляет стек вызовов в месте, где первоначально возникло исключение, и применяется модулем traceback для генерации сообщений об ошибках».

🧩 Что выведет код?
Anonymous voting

Код выводит: Поймано: RuntimeError Причина: ValueError D функции process_data() происходит попытка преобразовать строку "abc" в целое число, что вызывает ValueError. Затем это исключение перехватывается и перебрасывается как RuntimeError с помощью конструкции raise ... from e, которая сохраняет связь между исключениями. Внешний блок try-except ловит RuntimeError и выводит информацию о типе пойманного исключения и его причине через атрибут __cause__.

🪤 Что выведет код?
Anonymous voting

Все три способа валидны: cities.str.contains("Las Vegas", na=False).any() Выполняет поэлементный поиск подстроки (regex или литерал) внутри строк. "Las Vegas" in cities.values В Pandas Series.values возвращает numpy.ndarray. Выполняет проверку наличия точного значения в массиве NumPy. cities.isin(["Las Vegas"]).any() Проверяет для каждого элемента Series, содержится ли он в списке значений. Возвращает True, если хотя бы один элемент Series строго равен "Las Vegas".

🧩 Какой способ проверки вхождения "Las Vegas" верный?
Anonymous voting

Марк Лутц, «Изучаем Python», глава 34: «В коде используется удобная функция print_exc из модуля traceback, которая по умолчанию потребляет данные sys.exc_info; после запуска сценарий выводит сообщение об ошибке в файл, что удобно в тестовых программах, которым необходимо перехватывать ошибки, но вдобавок полноценно их регистрировать». В блоке обработки исключения вызывается traceback.print_exc(file=open('badly.exc','w')), который: 1️⃣ Открывает файл 'badly.exc' в режиме записи ('w') 2️⃣ Записывает в него полную информацию об исключении (traceback) 3️⃣ Закрывает файл После успешной обработки исключения выполнение продолжается, и выводится "Bye". Таким образом, код не завершается с ошибкой, а успешно обрабатывает исключение и создает файл с информацией об ошибке.

🪤 Что выведет код?
Anonymous voting

Марк Лутц, «Изучаем Python», глава 34: В данном коде присутствуют два активных оператора try — один в функции action1 и один на верхнем уровне модуля. Функция action2() генерирует исключение TypeError при попытке сложить число 1 и пустой список [], поскольку складывать числа и последовательности нельзя. «Когда action2 сгенерирует исключение `TypeError`, интерпретатор Python выберет и выполнит самый недавний try с совпадающей конструкцией except, которым в данном случае будет `try` внутри функции action1()». Поэтому исключение `TypeError` будет перехвачено внутренним обработчиком except TypeError: print('inner try'), и на экран выведется 'inner try'. Внешний `try` блок не выполнится, так как исключение уже было обработано на более глубоком уровне вложенности.

🪤 Что выведет код?
Anonymous voting