Библиотека питониста | Python, Django, Flask
40.3K subscribers
2.81K photos
79 videos
51 files
4.4K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.me/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Метод __init__

Этот метод используется для инициализации, то есть установки начального состояния нового экземпляра класса. Вызывается сразу при создании объекта (смотри пример на картинке). В большинстве случаев метод просто хранит атрибуты.

Если не прописывать __init__ в классе, то при создании его экземпляра атрибуты автоматически не будут установлены. Придётся вызывать дополнительные методы. __init__ решает эту проблему.
👍27🔥41👏1
Шпаргалка по REST API.pdf
435.4 KB
📄✍️ Шпаргалка по REST API

Может пригодиться многим. В ней есть:
✔️ структура URL запроса
✔️ HTTP-методы
✔️ заголовки запросов и ответов
✔️ коды ответов
✔️ структура JSON
👍12🔥6
👨‍💻 Библиотека Rich для вывода красивого форматированного текста в терминал

Позволяет создать хороший текстовый пользовательский интерфейс (TUI).

Вот некоторые возможности:
🔸 Подсветка синтаксиса. Разные типы данных будут выведены разными цветами и шрифтами.
🔸 Функция inspect() для генерации отчёта о любом объекте Python.
🔸 Библиотека имеет класс Console, у экземпляров которого можно вызывать метод print с удобным форматированием «на лету» console.print('[green underline]Green underline[/green underline] ')
🔸 Ещё есть класс Status, который позволяет выводить статус вашей программы с забавными анимациями.

🔗 Прочесть подробный туториал по библиотеке Rich можно здесь
👍132
🪄 Некоторые способы упростить конструкцию if-else

1️⃣ Иногда можно выбросить else. В функции return в блоке if прерывает её выполнение, поэтому в том, чтобы писать блок else просто нет надобности.
2️⃣ Иногда можно всё написать в одну строку. Выглядит красиво, но следует помнить, что такая конструкция плохо расширяемая.
3️⃣ Вместо большого количества or в условии можно использовать последовательности. Например, можно создать кортеж и положить в него все важные для условия значения.

🔗 Более подробно — в видео

#код
👍321
🐍📦 Небольшая подборка бесплатных материалов для тех, кто хочется разобраться с объектно-ориентированным программированием в Python

✍️ Объектно-ориентированное программирование на Python. Плейлист из 40 роликов про принципы ООП, методы классов, метаклассы и многое другое.
✍️ Курс по ООП на Python от «Лаборатории Линуксоида». С удобным разбиением на уроки, иллюстрациями и примерами кода. Также есть краткие видеоверсии уроков.
✍️ Туториалы по ООП от GeeksforGeeks. Если хорошо читаете по-английски, то можете изучить статьи на сайте. В них коротко, но достаточно подробно объясняются принципы ООП.
✍️ Книга ​​Python 3 Object-Oriented Programming, Dusty Phillips. Эта книга подойдёт опытным разработчикам, которые хотят углубить знания. Автор пишет, в том числе, про паттерны проектирования, параллелизм, тестирование приложений.
✍️ Не можем не упомянуть главы из нашего бесплатного «Самоучителя по Python для начинающих».
- Основы ООП — инкапсуляция и наследование
- Основы ООП — абстракция и полиморфизм
👍146👏1
💬 А вы понимаете, что здесь происходит?

👍 — да, понимаю
🤔 — не понимаю

#интерактив
👍270🤔140🤩3👏2
🔢 16-, 8- и 4-битные форматы чисел с плавающей запятой

Интересная статья о разных форматах представления вещественных чисел. Автор с помощью примеров на Python объясняет «стандартные» 32-битные числа с плавающей запятой, 16-битные числа (bfloat тоже), 8-битные числа и даже 4-битные числа. Он также поясняет, для чего нужны последние.

Если коротко: поскольку такие числа занимают меньше памяти, их можно использовать в машинном обучении. Автор создал нейронную сеть, чтобы продемонстрировать это. Благодаря 4-битным числам удалось в 8 раз снизить объём памяти, необходимый модели, а потеря точности оказалась небольшой.

🔗 Читать статью целиком
👍16🔥1
🐍 Что не так с числами после 256 в Python?

Вчера мы опубликовали код, который может удивить новичков. Сейчас объясним, в чём тут дело.

👉 В конкретной реализации CPython существует концепция кэширования целых чисел, которые находятся в диапазоне от -5 до 256. Это сделано для оптимизации производительности, поскольку данные числа используются достаточно часто.

Иными словами, когда вы используете целое число в указанном диапазоне, Python фактически ссылается на уже существующий объект, а не создаёт новый каждый раз. Так, две переменные с одним и тем же числом в диапазоне от -5 до 256 будут показывать один и тот же идентификатор​. В противном случае, идентификаторы и, соответственно, объекты будут разными.

Использованный нами оператор is как раз проверяет, находятся ли две переменные по одному адресу в памяти.
👍512
Одинарные и двойные подчёркивания в именах Python

В Python есть несколько важных соглашений об именовании, касающихся использования одинарного или двойного подчёркивания (_).

Например, в Python приватные и защищённые методы классов реализованы лишь на уровне договорённостей между разработчиками. Так, перед приватными методами нужно писать двойное нижнее подчёркивание, а перед защищёнными — одно.

Есть и другие соглашения. Прочесть обо всех подробнее можно в этой статье 👈
10👍6🔥1
🐍🤓 Одна из самых подробных шпаргалок по Python

Тут на GitHub создали репозиторий с большим гайдом по языку Python. Куча примеров кода в README.md, а также инструкция, как сделать из этого PDF.

В шпаргалке:
✍️ типы данных;
✍️ функции и классы;
✍️ обработка исключений;
✍️ работа с разными форматами данных;
✍️ корутины и многое другое.

🔗 Ссылка на шпаргалку
16👍13👏3🥰2
Мы запускаем серию исследований — и вы можете нам в этом помочь!

«Библиотека программиста» выпустит несколько статей, в которых мы проведем полноценные исследования.

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

Присылайте интересующие вас темы в комментарии — интересные мы возьмем в работу и поделимся с вами результатами 💙
👍10
🎄 Новогодний челлендж для всех любителей порешать задачки — стартовал очередной Advent of Code

Каждый день будет публиковаться по две новых задачи на программирование. Решать можно на любом языке.

P.S.: авторы просят не использовать ChatGPT

👉 Попробовать решить первую задачу
👍92
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏆 Самые популярные языки программирования 2023

Популярность ЯП зависит от нескольких факторов. Мы разобрались с ними, составили сводный рейтинг и обсудили особенности, преимущества, недостатки и причины популярности каждого языка. Заходите и читайте👇

🔗 Читать статью
🔗 Зеркало
🔥4👍1
🐰 Небольшая пасхалка в Python

Если попытаться передать методу float() строку 'infinity' или 'inf' (к регистру нечувствительно), то код сработает без ошибок и мы получим объект inf. Если затем применить к этому объекту hash(), то результатом будет «314159».

Узнали, что это? Да, это знаменитая последовательность из числа Пи (π ≈ 3.14159...). Пи имеет бесконечное количество цифр после точки.

🐍 Если любопытно, можете изучить источник этой пасхалки в CPython
🤯22🔥11🥰32😁2🤔2👍1
📰 10 признаков фейковой вакансии

Как понять, что с вакансией что-то не так? Разбираемся в этой статье!

Читать статью

#почитать
👍113🔥1👏1
📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»

Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!

🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
🔥27👍76
This media is not supported in your browser
VIEW IN TELEGRAM
😜 Библиотека MegaMock для тестирования Python-кода

Позволяет быстро писать тесты с использованием mock-объектов (заглушек или имитаций).

Несколько преимуществ библиотеки:
✔️автоматически создаёт имитации с использованием лучших практик;
✔️при патчинге принимает на вход не текстовую строку, а объект или функцию.
✔️у проекта есть собственный GPT, которому можно задавать вопросы по библиотеке или просить его сгенерировать тесты.

🧑‍💻 Репозиторий MegaMock на GitHub со всеми подробностями
👍82🔥2
💎Что такое алмазная проблема (Diamond problem) и как она решается в Python

Эта проблема также известна как ромбовидное наследование и связана с поддержкой языком множественного наследования.

🔷Допустим, у нас есть два класса B и C. Они наследуют от класса A. Также мы создаём класс D, который наследует от обоих классов B и C. Тут и может возникнуть неоднозначность. Если классы B и C по-своему переопределили некоторый метод родительского класса A, то от какого класса этот метод будет унаследован в D?

В Python с проблемой справились введением MRO, порядка разрешения методов. У класса можно вызвать функцию .mro() и увидеть список, в котором классы представлены в том порядке, в каком в них будет искаться нужный метод при вызове. Почитать об этом подробнее можно на Python.org
👍173👏2🤔2
💬 Там Python Software Foundation приглашает поучаствовать в официальном опросе Python-разработчиков

Опрос проводят каждый год. Чтобы его пройти, потребуется 10-15 минут. Также JetBrains и Python Software Foundation случайным образом выберут 20 человек, которым вручат подарочную карту Amazon (или локальный аналог) на сумму $100.

🐍Пройти опрос (можно выбрать русский язык)
👍10🔥4👏2
📖 Исчерпывающее руководство по сериализации данных в Python

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

Если коротко, сериализация — это способ преобразования структуры данных в форму, которую можно сохранить или передать по сети.

Есть множество форматов сериализации данных:
▪️Текстовые: CSV, JSON, XML, YAML. Могут читаться как людьми, так и машинами, но при этом довольно грузные и медленно работают с большими объёмами данных.
▪️Бинарные: Avro, BSON, Parquet, Protocol Buffers. Быстрые, но читаются только машинами.

О том, как выбрать подходящий формат, и как с ним работать, можно прочесть в новой статье на Real Python
👍12