Python Tips And Tricks
2.15K subscribers
341 photos
1 file
44 links
Твой лучший помощник в изучении и работе с Python 🐍

Реклама - @gaifullin
Download Telegram
map

У Python есть хорошая встроенная поддержка функционального программирования. Одной из самых полезных возможностей является функция map(), особенно в сочетании с лямбда-функциями

Здесь map() применяет простую лямбда-функцию на каждом элементе x и возвращает объект map, который можно преобразовать в какой-нибудь итерируемый объект вроде списка или кортежа
👍5
Новости нейросетей, которые вы могли пропустить за выходные 👌

🚀 Исследователи применили ИИ для создания изображений на основе активности мозга людей

Исследователи из Высшей школы передовых биологических наук Университета Осаки обнаружили, что они могут реконструировать высокоточные изображения активности мозга, используя модель генерации изображений Stable Diffusion. Им не потребовалось дополнительно обучать или настраивать модель для создания этих изображений.

🚀 Amazfit встроила ChatGPT в свои умные часы

Amazfit анонсировал первые в мире смарт-часы, которые работают с инструментами на базе ChatGPT. ИИ внедрили в операционную систему часов Zepp OS. Для работы с нейросетью появился отдельный циферблат с чатом, где можно пообщаться с ChatGPT.

🚀 Крутейшая нейросеть для создания видео

Новый упрощенный подход к видеомонтажу. Никаких слоев, дорожек, кучи плагинов и прочего. Descript дает вам возможность редактировать видео, будто это текстовый документ. На промо-ролике заметно сразу несколько фишек: крутые эффекты за пару кликов, удаление слов паразитов, создание модели голоса и многое другое. Пользовать можно тут.
pprint

Стандартная функция Python print() делает своё дело. Но если попытаться вывести какой-нибудь большой вложенный объект, результат будет выглядеть не очень приятно.

Здесь на помощь приходит модуль из стандартной библиотеки pprint (pretty print). С его помощью можно выводить объекты со сложной структурой в читабельном виде.

Мастхэв для любого Python-разработчика, работающего с нестандартными структурами данных
🔥42👍2
Автоматизация и скриптинг

Если вы программист, вы, вероятно, будете ленивы и захотите автоматизировать практически все, что можете, верно?

Не беспокойтесь, питон тебя прикроет. Есть множество вещей, которые вы можете автоматизировать всего за 4-5 строк кода. От установки заданий cron и напоминаний до загрузки ваших любимых видео на YouTube, вы можете сделать все это с помощью нескольких строк в python.
👍2🔥1
Разбиение строки в список

Вы можете разбить строку на список строк. В этом случае разбиение происходит по символу пробела

Чтобы разделить по пустому месту, не нужно передавать в split никаких аргументов – используйте mystring.split().

Split также имеет второй параметр, называемый maxsplit, который определяет максимальное количество разбиений. По умолчанию он равен -1 (без ограничений).
👍4🔥2
Аннотации типов

Python — динамически типизированный язык. Вам не нужно указывать тип данных при определении переменных, функций, классов и т.д.

Это позволяет ускорить процесс разработки. Однако мало что раздражает так сильно, как ошибка времени выполнения, возникшая из-за простого несовпадения типа.

С версии Python 3.5 при определении функции можно добавлять аннотации типов

Также они позволяют использовать инструменты для проверки типов, чтобы отлавливать ошибки TypeError.
👍3🔥1
Декорируем функции

Декоратор – это обертка вокруг функции, которая определенным образом изменяет ее поведение. Существуют варианты использования декораторов, и вы, возможно, уже применяли их раньше при работе с такими фреймворками, как Flask.

Внутри print_argument мы определяем функцию-обертку. Она выводит аргумент и имя вызываемой функции, выполняет фактическую функцию и возвращает ее результат, как если бы функция вызывалась «обычно».

С помощью print_argument мы применяем наш декоратор к функции. Декоратор может быть повторно использован и для других функций.
👍31🤔1
Курс «Английский для разработчиков» Яндекс Практикума

Для тех, кто хочет изменить свою профессиональную жизнь и работать в международной команде.

Обучение построено не вокруг абстрактной теории, а вокруг рабочих ситуаций и полезных для карьеры навыков:

Стендапы. Подготовитесь обсуждать задачи, задавать вопросы и просить о помощи.
👨‍💻 Работа с заказчиками. Научитесь презентовать решения, говорить про баги и фичи.
📣 Митапы. Сможете понимать на слух доклады и выступать сами.
😎 Собеседования. Научитесь рассказывать про свой опыт, понимать вопросы и тактично переспрашивать.
👯 Неформальное общение с коллегами. Сможете рассказать о своих интересах, опыте, планах на будущее.
💻 Код-ревью. Сможете описать сделанное, дать обратную связь, тактично отстоять своё мнение.

Запишитесь на бесплатную консультацию. Кураторы определят ваш уровень языка и расскажут подробнее про обучение.
👍2
Data classes

Начиная с версии 3.7, Python поставляется с классами данных. У них есть несколько преимуществ по сравнению с обычными классами или другими альтернативами:

• возврат нескольких значений или словарей;
• класс данных требует минимального количества кода;
• возможность сравнения классов данных;
• возможность распечатать класс данных для отладки при помощи repr;
• снижение вероятности ошибок в связи с требованием класса данных type hints
👍32👌1
Проверка на вхождение подстроки

Это маленькая, довольно очевидная подсказка, но я узнал о ней лишь через год изучения Python. Должно быть, вы знаете, что можно проверить, содержится ли нужный элемент в кортеже, списке, словаре, с помощью конструкции 'item in list' или 'item not in list'. Я не мог представить, что это сработает для строк.
👌3👍1🔥1
xkcd

Юмор — ключевая особенность Python. В конце концов, язык был назван в честь британского комедийного шоу «Летающий цирк Монти Пайтона». Во многих местах официальной документации можно найти отсылки к самым известным эпизодам шоу.

Конечно, чувство юмора не заканчивается на документации.
👍41👌1
YAML (ч.1)

YAML означает «YAML — не язык разметки» («YAML Ain’t Markup Language»). Это язык форматирования данных, являющийся надмножеством JSON.

В отличие от JSON, YAML может хранить более сложные объекты и ссылаться на собственные элементы.
👍4🔥2👌1
YAML (ч.2)

Также там можно писать комментарии, что делает YAML подходящим для конфигурационных файлов.

Модуль PyYAML позволяет использовать YAML в Python.

PyYAML позволяет хранить любые Python-объекты и экземпляры любых пользовательских классов.
👍2👌2🔥1
🧬 Примите участие в международной конференции Data Fusion 2023 от ВТБ, которая пройдёт 13-14 апреля.

Конференция будет полезна разработчикам и специалистам в области Data Science, CDO, бизнес-заказчикам DS-продуктов и сервисов, представителям государства и науки.

Первый день конференции будет посвящен аспектам управления данными, практикам перехода на доверенные технологии, доступности дата-сетов для ИИ и другим темам, актуальным для CDO и руководителей бизнес-подразделений.

Программа 14 апреля адресована data science специалистам и исследователям. Темы докладов и сессий распределены по трем стримам: «ML+», «AI Classic», «ML Environment».

На конференции представят новейшие технологии и инструменты, а также будут проведены практические сессии и выступления ведущих предприятий. Не пропустите возможность улучшить свои навыки и расширить свои знания в области Data Science. 

Участие в конференции бесплатное. Успейте зарегистрироваться по ссылке: https://cnrlink.com/datafusion81
👍1
Красивый вывод списка (ч.1)

Обычный формат вывода списка с помощью print не очень удобен. Конечно, становится понятно, что из себя представляет список, но чаще всего пользователь не хочет видеть кавычки вокруг каждого элемента.

Метод join преобразовывает список в строку, рассматривая каждый элемент как строку.
🤮3🔥2👍1👌1
🚀 Участвуй в хакатоне от «Лаборатории Касперского» с призовым фондом 500 000 рублей. На хакатон приглашаются разработчики, аналитики, QA-специалисты, архитекторы ПО, специалисты и эксперты по ИБ.

Даты проведения хакатона: 17-28 апреля. Регистрация открыта до 16 апреля включительно: https://cnrlink.com/hackcyberimmunepy

Хакатон по кибериммунной разработке предлагает две невероятно интересные задачи, связанные с энергетической безопасностью:

— Создание программы для обнаружения повышенного радиационного фона в трубах с паром на атомной электростанции.
— Создание программы для управления оборудованием на теплоэлектростанции.

Задачи хакатона не требуют специфических знаний в энергетической отрасли, поэтому будут понятны и полезны всем: студентам, преподавателям, middle-, senior-специалистам, техническим директорам.

Участвовать можно индивидуально или в команде до 5 человек. Успей зарегистрироваться до 16 апреля включительно: https://cnrlink.com/hackcyberimmunepy
👍1
Queue (ч.1)

Python поддерживает многопоточность, в использовании которой помогает стандартный модуль Queue.

Он позволяет реализовывать такую структуру данных, как очередь. Очереди позволяют добавлять и извлекать элементы согласно определённому правилу.
👍21
🚀 Смотрите международную конференцию Data Fusion 2023 в прямом эфире прямо сейчас! Конференция посвящена работе с данными и развитию технологий искусственного интеллекта.

Data Fusion 2023 – это точка сближения науки и бизнеса. Конференция будет полезна разработчикам и специалистам в области Data Science, CDO, бизнес-заказчикам DS-продуктов и сервисов, представителям государства и науки. 

Присоединяйтесь к экспертам Банка ВТБ, Яндекса, Сколтеха, «Газпром нефти», ВШЭ и многим другим.

👉 Смотрите международную конференцию Data Fusion 2023 по ссылке: https://cnrlink.com/df2023online
1👍1🔥1
Queue (ч.2)

Очереди «первым пришёл — первым ушёл» («first in, first out», FIFO) позволяют извлекать объекты в порядке их добавления. Из очередей «последним пришёл — первым ушёл» («last in, first out», LIFO) можно извлекать последние добавленные объекты.

Наконец, приоритетные очереди позволяют извлекать объекты согласно порядку их сортировки.
👍32👌1
uuid

Стандартный модуль uuid — быстрый и простой способ сгенерировать UUID (universally unique identifier, глобально уникальный идентификатор).

Так мы создаём случайное 128-битное число, которое почти наверняка будет уникальным.

Существует более 2¹²² возможных UUID. Это более 5 ундециллионов или 5,000,000,000,000,000,000,000,000,000,000,000,000.

Вероятность нахождения дубликатов в заданном наборе крайне мала. Даже при наличии триллиона UUID вероятность того, что среди них есть дубликат, гораздо меньше, чем один к миллиарду.

Вполне недурно для двух строк кода.
👍72🔥1👌1
Целочисленное деление и деление с плавающей точкой (ч.1)

Если вы делите целое число на целое, по умолчанию результат обрезается до целого. Например, 5/2 вернет 2.

Есть два способа это исправить. Первый и самый простой способ заключается в том, чтобы преобразовать одно из чисел к типу float. Для констант достаточно добавить ".0" к одному из чисел: 5.0/2 вернет 2.5. Также вы можете использовать конструкцию float(5)/2.

Второй способ дает более чистый код, но вы должны убедиться, что ваша программа не сломается от этого существенного изменения.
1👌1🤡1🖕1