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

Реклама - @gaifullin
Download Telegram
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
Хотите начать карьеру в IT?

Быстро освоить навыки и перейти к практике — легко! 

Платформа Deepskills представляет методику микрообучения, которая поможет вам быстро войти в профессию и получить работу мечты!

Курсы от практикующих экспертов.

Бесплатный пробный период в течение 14 дней, чтобы вы убедились в качестве нашего обучения.

Начни свой путь к успеху уже сегодня.

Учись на практике с Deepskills!
👍1🔥1👀1
Списковые включения

Возможно где-то до этого ты уже мог слышать понятие «list comprehensions». Это такой способ уместить цикл for, блок if и присваивание в одну строку.

Начнем с простейшего примера. Допустим, нам снова надо возвести в квадрат все элементы списка.

Да, определенно этот код короче предыдущего, но всё еще некрасив. С первого взгляда сложно сказать, что делает функция map (она принимает в качестве аргументов функцию и список и применяет функцию к каждому элементу списка). К тому же мы вынуждены определять функцию, это выглядит довольно беспорядочно.

Но, оказывается, можно писать проще и понятнее
👍21🔥1👌1