Python: задачки и вопросы
الذهاب إلى القناة على Telegram
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media
إظهار المزيد7 132
المشتركون
-124 ساعات
+77 أيام
لا توجد بيانات30 أيام
أرشيف المشاركات
Все три способа валидны:
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".
Марк Лутц, «Изучаем Python», глава 34:
«В коде используется удобная функция print_exc из модуля traceback, которая по умолчанию потребляет данные sys.exc_info; после запуска сценарий выводит сообщение об ошибке в файл, что удобно в тестовых программах, которым необходимо перехватывать ошибки, но вдобавок полноценно их регистрировать».
В блоке обработки исключения вызывается traceback.print_exc(file=open('badly.exc','w')), который:
1️⃣ Открывает файл 'badly.exc' в режиме записи ('w')
2️⃣ Записывает в него полную информацию об исключении (traceback)
3️⃣ Закрывает файл
После успешной обработки исключения выполнение продолжается, и выводится "Bye". Таким образом, код не завершается с ошибкой, а успешно обрабатывает исключение и создает файл с информацией об ошибке.
Марк Лутц, «Изучаем Python», глава 34:
В данном коде присутствуют два активных оператора try — один в функции action1 и один на верхнем уровне модуля.
Функция action2() генерирует исключение TypeError при попытке сложить число 1 и пустой список [], поскольку складывать числа и последовательности нельзя.
«Когда action2 сгенерирует исключение `TypeError`, интерпретатор Python выберет и выполнит самый недавний try с совпадающей конструкцией except, которым в данном случае будет `try` внутри функции action1()».
Поэтому исключение `TypeError` будет перехвачено внутренним обработчиком except TypeError: print('inner try'), и на экран выведется 'inner try'.
Внешний `try` блок не выполнится, так как исключение уже было обработано на более глубоком уровне вложенности.
GlowByte запускает второй сезон образовательного онлайн-ретрита по FineBI — «Второе дыхание»!
13 дней обновленной программы с 3 новыми уроками, практическими вебинарами и призами за лучшие домашние задания.
Что ждет участников:
• Обновленные домашние задания с системой призов
• Три специальных вебинара: FineReport Pro (28 августа), AI-революция в аналитике (2 сентября), 3D-визуализация с FineVis (9 сентября)
• Успешные кейсы от Tele2, Уралсиб, Циан и других компаний
Программа для всех, кто работает с данными — от разработчиков до руководителей.
Старт 25 августа!
Регистрируйтесь по ссылке и получите второе дыхание в мире BI-аналитики.
Это #партнёрский пост
Хотите выйти за рамки базового Python и перейти к профессиональной разработке?
Пора сделать следующий шаг - онлайн-курс «Python Developer. Professional».
Старт обучения - 29 сентября.
Это программа для тех, кто уже уверенно работает с Python и готов углубляться в промышленную разработку, лучшие практики и архитектуру современных приложений.
Вы научитесь:
— Писать надёжный, быстрый и безопасный код
— Проектировать архитектуру приложений и профилировать производительность
— Работать с современными фреймворками и библиотеками
— Понимать устройство чужого и собственного ПО, обеспечивать его поддержку и развитие
— Применять Python в реальных задачах - от backend-а до data-driven решений
Этот курс — шаг в настоящую инженерию на Python. По итогам вы не просто прокачаете скиллы, а сможете уверенно работать на middle+/senior-уровне.
Успейте записаться до старта 29 сентября!
Пройдите вступительное тестирование и займите место в группе
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Из документации Python
«Оператор assert — простой способ вставить отладочные утверждения в программу». Он является простым утверждением, которое проверяет истинность выражения.
Когда условие в assert истинно, программа продолжает выполнение без каких-либо изменений.
Если же условие ложно, assert вызывает исключение AssertionError, что приводит к немедленному завершению программы.
assert может принимать необязательное сообщение об ошибке, которое будет выведено при срабатывании исключения.
В нашем случае assert x < y, "x должно быть меньше y" проверяет, что переменная x действительно меньше y.
Поскольку 15 < 10 является ложным утверждением, assert вызывает исключение и останавливает дальнейшую интерпретацию кода.
x = 15
y = 10
assert x < y, "x должно быть меньше y" # AssertionError: x должно быть меньше y
print("Условие выполнено") # Не отработает вообще
Важно понимать, что `assert` предназначен для отладки и проверки инвариантов программы, а не для обработки ошибок времени выполнения.
Марк Лутц, «Изучаем Python», глава 34:
«Исключения иногда могут генерироваться в ответ на другие исключения — как преднамеренно, так и по причине новых ошибок в программе. Для поддержки полноценного обнаружения в таких случаях операторам raise также разрешено иметь дополнительную конструкцию from:
raise новое-исключение from другое-исключение
Когда конструкция from используется в явном запросе raise, следующее за from выражение указывает еще один класс или экземпляр для присоединения к атрибуту __cause__ нового генерируемого исключения. Если сгенерированное исключение не перехвачено, тогда интерпретатор Python выводит оба исключения как часть стандартного сообщения об ошибке».
В нашем случае:
Поймано: RuntimeError
Причина: ValueError
Сделали для вас квест в футуристичном городе инженеров
Во время маленького приключения вы разберетесь как устроен YADROpolis, блеснёте своими сильными сторонами и узнаете своё ПРЕДНАЗНАЧЕНИЕ* на ближайшие несколько лет: https://tprg.ru/F7Hs
*аkа магистерская программа в одном из топовых технических ВУЗов страны.
Марк Лутц, «Изучаем Python», глава 34:
«...после выхода из блока
except эта переменная [X] удаляется. Так происходит оттого, что в противном случае она сохранила бы ссылку на стек вызовов времени выполнения, которая отложила бы сборку мусора, оставив выделенным избыточное пространство памяти. Однако удаление переменной происходит, даже если вы используете имя где-то в другом месте, и является более крайней политикой, чем применяемая для включений.»
«Вы обычно должны использовать в конструкциях except оператора try уникальные имена переменных, хотя они и локализуются внутри областей видимости. Если вам необходимо ссылаться на экземпляр исключения после оператора try, тогда просто присвойте его еще одному имени (saveit), которое не будет автоматически удаляться»:
try:
1/0
except Exception as X: # Python удаляет эту ссылку
saveit = X # Присвоить экземпляр исключения для его сохранения
print(saveit) # division by zero
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
