Библиотека Python разработчика | Книги по питону
19.5K subscribers
1.05K photos
392 videos
82 files
988 links
Полезные материалы для питониста по Фреймворкам Django, Flask, FastAPI, Pyramid, Tornado и др.

По всем вопросам @evgenycarter

РКН clck.ru/3Ko7Hq
Download Telegram
Pro Python 3: Features and Tools for Professional Development
Авторы: J. Burton Browning, Marty Alchin (2019)

В книге рассматриваются методики, применение которых не только улучшит ваш код, но и углубит понимание философии и концепций языка. Прочитав книгу, вы сможете усовершенствовать свой подход к разработке и стать более продуктивным и креативным программистом. Книга написана для Python-разработчиков среднего уровня.

Чему вы научитесь:
✔️Правильно работать с классами;
✔️Использовать функции из стандартной библиотеки и сторонних;
✔️Собирать данные с веб-сайтов с помощью Python;
✔️Автоматизировать модульное тестирование, написав набор тестов и многое другое.

Скачать
Деструкторы

При уничтожении экземпляра класса в большинстве языков вызывается специальный метод, который называется деструктор.

В Python деструктор можно переопределять с помощью магического метода __del__, который вызовется автоматически при удалении объекта.

Вообще деструкторы крайне редко переопределяется в Python, но полезно знать, что именно эти методы отвечают за очистку при удалении объекта.
Генерируем фейковые данные

Faker — это легкий пакет, позволяющий создавать фейковые данные, которые могут быть полезны в качестве заглушек.

Например, методы name(), addres(), email() и job() создадут для вас случайные имена, адреса, почты и названия работ.

Еще есть метод text(), который генерирует случайный текст, но, как видите в примере, результат получается неосмысленный.

Вообще методов в пакете много, продемонстрировать все в одном посте нереально, поэтому можете почитать больше в документации.

Плюс здесь еще в том, что данные можно локализировать под свой язык. Для примера мы поставили русский.
Подборка каналов для IT специалистов 🎯

https://t.me/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/React_lib Подборки по React js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста


Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++

Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus

Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus

GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub

CodePen 📌
https://t.me/codepen_1 Сообщество пользователей CodePen

Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка

Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков

Разработка игр 📌
https://t.me/game_devv Все о разработке игр

Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT

Чат программистов📌
https://t.me/developers_ru

Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов

БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию

QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://t.me/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности

Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
https://t.me/arhitekturamira World Architecture

Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.

Английский 📌
https://t.me/UchuEnglish Английский с нуля

Математика 📌
https://t.me/Pomatematike Канал по математике

Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика

Крипта 📌
https://t.me/bitkoinoff Новости криптовалют

Метавселенная, GameFi, Crypto 📌
https://t.me/metaverse360

DeepFake 📌
https://t.me/deepfakenow Публикуем deepfake видео

Мир технологий 📌
https://t.me/mir_teh Видео из мира технологий

Excel лайфхак📌
https://t.me/Excel_lifehack
The popular method to declare an abstract method in Python is to use NotImplentedError exception:

def human_name(self):
raise NotImplementedError


Though it's pretty popular and even has IDE support (PyCharm considers such method to be abstract), this approach has a downside. You get the error only upon method call, not upon class instantiation.

Use abc to avoid this problem:

from abc import ABCMeta, abstractmethod
class Service(metaclass=ABCMeta):
@abstractmethod
def human_name(self):
pass


Also be aware that NotImplemented is not the same that NotImplementedError. It's not even an exception. It's a special value (like True and False) that has an absolutely different meaning. Some special methods may return it (e.g., __eq__(), __add__(), etc.) so Python tries to reflect operation. If a.__add__(b) returns NotImplemented, Python tries to call b.__radd__.
Получение списка имен в объектах

С помощью функции dir() можно получить отсортированный список имен атрибутов и методов, доступных в локальной области. Либо если в функцию передать какой-либо объект dir(object), она вернет список всех имен атрибутов и методов переданного объекта.

Для того, чтобы вручную определить для класса выдачу информации по атрибутам для функции dir(), можно определить в классе метод __dir__().

Для классов, в которых не определен __dir__(), функция соберет информацию по атрибутам из __dict__.

Данную функцию удобно использовать в интерактивном режиме для поиска нужного атрибута, применяя функцию help() по нужному атрибуту для получения документации.
collections.defaultdict allows you to create a dictionary that returns the default value if the requested key is missing (instead of raising KeyError). To create a defaultdict you should provide not a default value but a factory of such values.

That allows you to create a dictionary that virtually contains infinite levels of nested dicts, allowing you to do something like d[a][b][c]...[z].

>>> def infinite_dict():
... return defaultdict(infinite_dict)
...
>>> d = infinite_dict()
>>> d[1][2][3][4] = 10
>>> dict(d[1][2][3][5])
{}


Such behavior is called “autovivification”, the term came from the Perl language.
Forwarded from BigData
AI-Neural-Networks.pdf
7.7 MB
Шпаргалка по AI, Neural Networks, Machine Learning, Deep Learning и Big Data

👉 @bigdata_1
Сделайте весомый вклад в свое будущее — освойте одну из самых востребованных IT-профессий с нуля.

По данным с сайтов по поиску работы, доступно 6200+ вакансий, компании прямо сейчас ищут Python-разработчиков, 70 000р. — средняя зарплата разработчика.
Сложно, но можно освоить программирование самостоятельно, но также есть большой выбор обучающих курсов, причем большинство из них действительно полезны.

Мы в GeekBrains проводим набор студентов на факультет Python-разработки, где вы реализуете 7 проектов для портфолио, а мы дадим гарантию трудоустройства!
Научим вас писать программы и веб-приложения, даже если вы никогда не программировали.

Гарантия трудоустройства закреплена в договоре. Если после успешного обучения вы не найдёте работу, мы вернём вам деньги.

Длительность курса — 16 месяцев, по 2 занятия в неделю. Для прохождения курса техническое образование или опыт работы не требуется.

Обучение строится на взаимодействии с командой: наставниками, преподавателями и студентами. Навык работы с людьми — один из самых необходимых в работе разработчика.

Узнать подробнее о курсе или получить бесплатную консультацию можно по ссылке:

https://clck.ru/sLDWC

Дарим подарки всем студентам:
— Изучение английского языка с Kespa: 3 месяца к Premium подписке;
— Ключ от продуктов JetBrains! Бесплатная подписка.
— Защитное решение «Лаборатории Касперского»! Пробная версия на 3 месяца.
Native Python float values use your computer hardware directly, so any value is represented internally as a binary fraction.

That means that you usually work with approximations, not exact values:

In : format(0.1, '.17f')
Out: '0.10000000000000001'


The decimal module lets you use decimal floating point arithmetic with arbitrary precision:

In : Decimal(1) / Decimal(3)
Out: Decimal('0.3333333333333333333333333333')


That's still can be not enough:

In [61]: Decimal(1) / Decimal(3) * Decimal(3) == Decimal(1)
Out[61]: False


For perfect computations, you can use fractions, that stores any number as a rational one:

In : Fraction(1) / Fraction(3) * Fraction(3) == Fraction(1)
Out: True


The obvious limitation is you still have to use approximations to irrational numbers (such as π).
Forwarded from Python академия
Генерация капчи

Сегодня покажем создание простейшей капчи. Для этого нам понадобится модуль captcha и Pillow, который используется для создание изображений в captcha.

Все максимально просто, за нас по сути все делает уже написанный в модуле код. Создаем объект изображения ImageCaptcha, на который будет нанесен текст. После чего вызываем метод write с заданным текстом и именем файла, в который будет записано изображение.

Подписывайтесь на канал 👉@pythonofff
PiterPy возвращается!
В октябре JUG Ru Group организует конференцию для тех, кто работает с Python — PiterPy 2022.

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

Вы подтвердите свою экспертность, познакомитесь с крутыми специалистами и получите обратную связь от участников. Программный комитет поможет с подготовкой к выступлению — назначит персонального куратора, проведет ревью материала и организует репетиции.

На сайте вы найдёте список тем, с которыми можно выступить. Если хотите выступить с другой темой, присылайте свои предложения — их обязательно рассмотрят.

А если хотите просто поучаствовать в PiterPy 2022 — подписывайтесь на нашу рассылку и не пропустите новость о старте продаж билетов.
Получаем исходный код объекта

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

Сегодня поговорим только про getsource(), который возвращает весь исходный код функции, класса или модуля в виде строки.

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

#python

Подписывайтесь на канал 👉@coddy_academy
Подборка каналов для IT специалистов 🎯

https://t.me/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/React_lib Подборки по React js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста


Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++

Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus

Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus

GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub

CodePen 📌
https://t.me/codepen_1 Сообщество пользователей CodePen

Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка

Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков

Разработка игр 📌
https://t.me/game_devv Все о разработке игр

Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT

Чат программистов📌
https://t.me/developers_ru

Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов

БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию

QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://t.me/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности

Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
https://t.me/arhitekturamira World Architecture

Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.

Английский 📌
https://t.me/UchuEnglish Английский с нуля

Математика 📌
https://t.me/Pomatematike Канал по математике

Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика

Крипта 📌
https://t.me/bitkoinoff Новости криптовалют

Метавселенная, GameFi, Crypto 📌
https://t.me/metaverse360

DeepFake 📌
https://t.me/deepfakenow Публикуем deepfake видео

Мир технологий 📌
https://t.me/mir_teh Видео из мира технологий

Excel лайфхак📌
https://t.me/Excel_lifehack
To set the default values of attributes in a constructor, you usually use a simple if:

def __init__(self, cache=None):
if cache is None:
cache = {}
self._cache = cache


It can be rewritten a little shorter:

def __init__(self, cache=None):
self._cache = cache or {}


This method a couple of drawbacks though. First, the intent of such or may not be clean enough since it is usually used in boolean context. Second, or checks for False, not for None, that can lead to obscure bugs.
The simplest way to use the logging module is to call functions directly from it, without creating a logger object.

import logging
logging.error('xxx')


This global logger can be configured via the logging.basicConfig() call:

import logging
logging.basicConfig(format='-- %(message)s --')
logging.error('xxx') # -- xxx --


Due to its global nature, basicConfig has some limitation. First, only the first call actually does something, any further calls of basicConfig are entirely ignored. Second, any function that writes a log message calls basicConfig, so you must configure logging before logging any messages:

import logging
logging.error('xxx') # ERROR:root:xxx
logging.basicConfig(format='-- %(message)s --')
logging.error('xxx') # ERROR:root:xxx
11 августа состоится Alfa Data Science MeetUp в стиле кибер-футуризма 📟

Если вы в Москве 👉 регистрируйтесь на сайте и приезжайте в офис Альфа-Банка по адресу: проспект Андропова 18, корп. 6 или подключайтесь к онлайн трансляции!

Темы и спикеры:
🖲 Развитие клиентской базы: моделирование LTV и прогноз будущих доходов
- Сергей Королёв, Middle Data Scientist Альфа-Банк
🖲 Uplift-моделирование в ценообразовании кредитных продуктов
- Максим Коматовский, Junior Data Scientist Альфа-Банк
🖲 Совершенный код расчёт
- Максим Cтаценко, Team Lead/Senior DWH Developer в Яндекс
🖲 Применение подхода reject/inference в нейросетевом кредитном скоринге
- Алексей Фирстов, Senior Data Scientist Альфа-Банк

Мероприятие пройдет в необычном формате. У вас будет время вспомнить «Бегущего по лезвию» или «Cyberpunk 2077», вдохновиться, поучаствовать в конкурсе и получить призы за креативность 🕶

Регистрируйтесь на сайте, приходите в гости, будет интересно!