Поздравляем победителей
Задачу про email верно решили:
—@Indiv06;
— @nxiqns;
— @vsugoyak;
— @flydzen;
— @sidor0912.
Кратчайшее верное решение предложил @@flydzen:def count_emails(emails: list[str]) -> int:
return len({(sp[0].replace('.', '').split('+')[0], sp[1]) for m in emails if (sp := m.split('@'))})
#задача
@zen_of_python
Что-то много на код отведено, не больше 4-х часов в день в среднем же!
#кек
@zen_of_python
Прокачайте навыки архитектора — изучите современные системы очередей!
Асинхронное взаимодействие и очереди — тема, обязательная к изучению абсолютно всем, кто интересуется архитектурой. Разработчику важно понимать архитектурные особенности, сильные и слабые стороны компонент, на базе которых строится архитектура.
В начале июля у DevHands (образовательный проект Алексея Рыбака) стартует курс «Введение в очереди».
Автор курса — Владимир Перепелица, эксперт по большим проектам, очередям и Tarantool, регулярный спикер и член ПК конференций Highload, создатель S3 в VK Cloud.
В программе:
— асинхронное взаимодействие с помощью очередей: подходы, свойства и гарантии;
— знакомство с основными системами очередей (Kafka/Rabbit/NATS/Redis и другие);
— основные аспекты, на которые нужно смотреть при использовании очереди;
— правильная конфигурация систем очередей;
— много практики на Python/Go.
Интервью с автором и запись на курс по ссылке.
А ещё держите промокод ARE_YOU_NATS — по нему скидка 20% до 28 июня.
Присоединяйтесь и прокачивайте навыки!
Реклама. Рекламодатель: ИП Рыбак Алексей Алексеевич ИНН 771407709607, erid: LjN8KPTLi
«Восьмилетка учит Python и, столкнувшись с синтаксической ошибкой, спрашивает: Если компьютер знает, что здесь пропущена точка с запятой, почему сам ее не добавит?
Я не знаю, реально не знаю«.
#кек
@zen_of_python
Даже не знаю, каких девушек эта футболка отфильтрует.O(n^8)
указывает, что время выполнения алгоритма резко увеличивается с увеличением размера входных данных (n).
#кек
@zen_of_python
Carfinger | управление авто ладонью
Забавный репозиторий на базе OpenCV, позволяющий использовать различные кастомизируемые жесты вместо WASD. Если показать машине средний палец, поедет назад.
Репозиторий проекта
#библиотека #кек
@zen_of_python
Понимание индексации базы данных и как ее реализовать в Django
В контексте баз данных скорость и эффективность имеют важное значение. Индексирование — одна из основных стратегий, используемых для повышения производительности запросов к базе данных. В этом сообщении блога мы рассмотрим индексирование баз данных, в том числе, что это такое, почему это важно.
Читать: https://prakash0091.hashnode.dev/understanding-database-indexing-and-how-to-implement-it-in-django
@django_prog
Вопрос подписчика
Задаёт @KAPITAN_FLASHBACK:
«В питоне есть инструмент, для того что-бы при ssh соединении прокидывать сразу несколько портов? (Не через subprocess)»
#обсуждение
@zen_of_python
Что нового в VSCode про Python
В блоге IDE опубликовали описание релиза для расширения Python. Если вкратце, то:
— внедрена интерактивная среда REPL. Теперь можно отправить код исполнятся в оболочку выделением строк и нажатием Shift + Enter (на видео);
— оптимизировано взаимодействие с pytest и проч.
Расширение на Visual Studio Marketplace
#факты
@zen_of_python
Мини-статья: как снизить нагрузку на CRM-систему
Разработчик из ГПБ понятно рассказывает как устроена их система customer relationship management и почему в качестве СУБД остановились на Redis: https://tprg.ru/UPEl
Играть в симулятор фермы как настоящий питонист
Фанат Hay Day решил улучшить свои игровые результаты с помощью Google OR Tools — библиотеки для оптимизации процессов, маршрутов и проч. Получилась целая модель, и этот лонгрид — хороший способ для новичка познакомиться с проблемой оптимизации, будь то задача коммивояжёра или оптимизация нагрузки).
#факты
@zen_of_python
WeasyPrint | скриншоты веб-страниц
Если вам тоже надоело, что нашпигованные сайты не дают сделать нормальные скриншоты длинных страниц браузерными расширениями, эта библиотека поможет. Она работает не на рендеринг движках вроде WebKit или Gecko, а на нескольких инструментах.
Репозиторий проекта
#библиотека
@zen_of_python
Senior Python разработчики, ваш выход
На новой вакансии вам предстоит:
В тесной коллаборации с Data Science командой заниматься продуктовой разработкой и писать нагруженные сервисы на Python. От вас требуется опыт промышленной разработки на Python, хорошие знания алгоритмов и умение в Docker и Postgres.
Будет плюсом:
— опыт создания CI/CD pipeline’ов.
— общее понимание основ Data Science.
— опыт работы с Kafka, Redis.
— опыт работы с Openshift, Minio, Ceph.
Нажимайте, чтобы быть на связи
#вакансии #работа
Flappy Bird на PyQt
Энтузиаст собрал свой клон небезызвестной игры в стиле endless runner и рассказал на Reddit, как шёл процесс разработки. Очень интересный пример пет-проекта, подъёмного даже для новичка.
#факты
@zen_of_python
Senior Python разработчики, ваш выход
На новой вакансии вам предстоит:
В тесной коллаборации с Data Science командой заниматься продуктовой разработкой и писать нагруженные сервисы на Python. От вас требуется опыт промышленной разработки на Python, хорошие знания алгоритмов и умение в Docker и Postgres.
Будет плюсом:
— опыт создания CI/CD pipeline’ов.
— общее понимание основ Data Science.
— опыт работы с Kafka, Redis.
— опыт работы с Openshift, Minio, Ceph.
Нажимайте, чтобы быть на связи
#вакансии #работа
Состоялся крупнейший апдейт NumPy за последние 18 лет
Первый мажорный релиз 2.0.0 с 2006 года содержит много нового:
— StringDType (новый тип данных для строк переменной длины);
— новое пространство имён numpy.strings
с высокопроизводительными функциями для обработки строк;
— ускорение sort
, argsort
, partition
и argpartition
;
— разделение публичного и приватного API и проч.
Подробнее
@zen_of_python
Задача об автобусе
Автобус идет по маршруту от 0-й до (n - 1) остановок по кругу, причем в обоих направлениях. Автобус едет в обоих направлениях, то есть по часовой стрелке и против часовой стрелки.
Мы знаем расстояние между всеми парами соседних остановок. distance[i] — это расстояние между остановками номер i и (i + 1) % n.
Создайте функцию find_min_distance()
, возвращающую кратчайшее расстояние между заданными остановками начала и конца.
Для теста:
>>> distances = [1,2,3,4]
>>> start = 0
>>> destination = 3
>>> find_min_distance(distances, start, destination)
... 4
Что будет, если ИИ будет писать новости?
Мы решили проверить это и позволили нейросети писать новости из мира технологий на основе ярких событий в канале NewsGPT.
Она уже рассказала нам, что NVIDIA покупает Марс, Apple делает холодильники, а ИИ становится мэром.
Подписывайтесь, чтобы узнать, как видит мир нейросеть: @notnewsgpt
Вопросы новичков
Zen of Python поддерживает новоприбывших в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросыновичков
@zen_of_python
bytes | что это за тип данных и чем отличается от строки
Очень понятная англоязычная статья про неизменяемую последовательность байтов в числах от 0 до 255. Сегодня ее используют для хранения изображений, обмен данными по сети и сжатия.
#факты
@zen_of_python
Квиз про интерполяцию строк
Попробуйте свои силы в викторине realpython.com на тему вставки переменных в строки, ведь топик только кажется досконально понятным. Для подготовки можно использовать эту статью.
@zen_of_python
Большой обзор: какой язык учить в 2024 году?
МТС оценили Python, JavaScript, Java, TypeScript, Golang, Ruby и Swift по популярности, порогу вхождения и зарплатам. Узнайте какое место занял наш любимый «питон»: https://tprg.ru/F3eJ
Python в Excel: обзор от разработчика
Понятная англоязычная статья про текущие возможности и ограничения ЯП в рамках MS Excel. Здесь и Py про замену Power Query (язык запросов к таблице), и про чистку табличных данных, и про прогнозирование временных рядов.
⚡— пробовал(-а) Python в Excel
🤔 — еще не доводилось пощупать
#факты
@zen_of_python
Поздравляем победителей
Задачу о горном массиве верно решили:
— @ganrre;
— Sergey;
— @v1ktoriia_romanova;
— @sidor0912;
— @vsugoyak.
Кратчайшие верные решения предложили @sidor0912:check_mountain = lambda a: all((len(i)>1 and i == sorted(set(i)) for i in (a[:a.index(max(a))+1], a[len(a)-1:a.index(max(a))-1:-1])))
и @vsugoyak:def check_mountain(arr):
return all([arr[nm-1]<arr[nm] for nm in range(1,len(arr))])
#задача
@zen_of_python
Задача об email
Адрес электронной почты состоит из локального и доменного имён, разделённых знаком «@». Помимо строчных букв, электронное письмо может содержать один или несколько символов «.» (точка) или «+» (плюс).
Например, в «alice@tproger.ru» alice — это локальное имя, а tproger.ru — доменное. Если вы добавите точки '.' в локальное имя (например, al.ice), почта все равно полетит на тот же адрес alice.
Если вы добавите + в локальное имя, все, что находится после первого такого плюса, будет игнорироваться. Это позволяет фильтровать определённые письма. Например, письмо на m.y+name@email.com будет перенаправлено на my@email.com».
NB! эти правила не распространяются на доменные имена. Возможно использование обоих этих правил одновременно.
Напишите функцию, которая принимает список почт и рассчитывает количество различных адресов, которые фактически получают почту.>>> emails = ["test.email+alex@tproger.com","test.e.mail+bob.cathy@tproger.ru","testemail+david@t.proger.ru"]
>>> count_emails()
... 2
Объяснение: из перечисленных адресов только testemail@tproger.ru и "testemail@tproger.ru" действительно получат письма.
#задача
@zen_of_python
Оптимизировать Python? Зачем?
Техлид Яндекс Такси Серёжа Яхницкий рассказал в мемах, как и чем техногигант повышает производительность питона.
Неожиданно расслабляющая форма изложения: здесь и про профилирование, и linux perf, и JIT-компиляцию, . Понятно будет даже новичкам. Как раз позалипать на выходных.
#факты
@zen_of_python