Python: задачки и вопросы
Kanalga Telegram’da o‘tish
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media
Ko'proq ko'rsatish6 956
Obunachilar
-324 soatlar
-57 kunlar
-5630 kunlar
Postlar arxiv
В Python значения по умолчанию для аргументов функции вычисляются один раз при определении функции. В данном случае список
lst создаётся один раз и используется при каждом вызове функции func, если не передан другой список. Поэтому элементы добавляются в один и тот же список, и результат накапливается.Тестирование на Python для продвинутых: кейсы, инструменты, ошибки
22 мая в 20:00 — вебинар для тех, кто хочет вывести тестирование на новый уровень.
На вебинаре вы узнаете:
— как тестировать async-код, базы данных и работу с файлами
— частые ошибки: избыточные моки, хрупкие тесты и антипаттерны
— инструменты pro-уровня: pytest, tox, coverage и др.
— как ускорить прогон без потери качества
— реальные кейсы и подходы из продакшена
Подходит для опытных Python-разработчиков, лидов, архитекторов и всех, кто пишет тесты, но хочет делать это лучше, быстрее и стабильнее. Вебинар проходит в преддверии старта курса «Python Developer. Professional». Участникам — скидка на обучение!
Участие бесплатное
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Метакласс
MyMetaclass в момент создания MyClass добавляет в пространство имён метод greeting. Этот метод становится доступен экземплярам класса MyClass, как если бы был определён обычным способом.Хотели бы, чтобы работодателю было важнее как вы работаете, а не откуда?
В Точке у сотрудников есть полная свобода выбора: можно работать в уютных офисах в России, из дома или вообще из любой точки мира. Главное — результат, а не локация.
Точка — это финтех-компания, где делают настоящие диджитал-продукты для бизнеса. Здесь создают более 60 сервисов, например, онлайн-бухгалтерию, решения для ВЭД и помощь с выходом на маркетплейсы. Всё, что нужно предпринимателям, чтобы строить и развивать свой бизнес — в одном месте.
Над этими продуктами работают 1300 IT-специалистов: разработчики, продакты, тестировщики, дизайнеры, аналитики, дата-сайентисты и девопсы. Это профессиональная среда для тех, кто хочет развиваться и видеть реальный результат своей работы.
Если хотите быть частью команды, где ценят профессионализм, доверяют людям и дают свободу — загляните к нам. Вдруг это именно то место, которое вы искали.
Ссылка на вакансии
Это #партнёрский пост
Атрибут
is_monotonic_increasing возвращает True, если каждое значение объекта pd.Series больше предыдущего или равно ему. Приращение значений при этом не обязано быть одинаковым:
print(pd.Series(data = [1, 3, 3, 6]).is_monotonic_increasing) # TrueCоздаем объект
Future из модуля asyncio (это не то же самое, что concurrent.futures.Future:
future = asyncio.Future()
Cоздаем новую задачу, которая будет выполняться асинхронно
asyncio.create_task(set_after_delay(future))
Она:
- Принимает future как параметр
- Ждет 1 секунду
- Устанавливает результат в future
Ждем, пока future получит результат. Это не блокирует весь интерпретатор, а только текущую корутину:
result = await future
Это еще называют «Неблокирующим ожиданием».Интерпретатор «замрет», потому что попадет в состояние бесконечного ожидания (deadlock).
future = Future() # создаем Future-объект в состоянии pending
print(future.result()) # Просим показать result(), БЛОКИРУЯ
future.set_result("Hello from the future!") # Задаем result
result() будет ждать, пока результат не будет установлен, но set_result() никогда не будет вызван, так как выполнение программы остановилось на предыдущей строке.
С такой ситуацией можно справиться, если добавить аргумент-таймаут:
future.result(timeout=1)LRUcache (от англ. Least Recently Used cache) — это механизм кэширования, который хранит ограниченное количество результатов вычислений или обращений к данным, и при переполнении освобождает место, удаляя из кэша самый долго неиспользуемый элемент.
Декоратор @cache применяется к функциям и автоматически запоминает результаты их вызовов с конкретными аргументами. Если функция с такими же аргументами вызывается повторно, результат берется из кэша, что значительно ускоряет работу, особенно при дорогих в вычислении функциях.
