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

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

РКН clck.ru/3Ko7Hq
Download Telegram
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», вдохновиться, поучаствовать в конкурсе и получить призы за креативность 🕶

Регистрируйтесь на сайте, приходите в гости, будет интересно!
​Black – Бескомпромиссный инструмент для форматирования кода Python

Black дает вам скорость, детерминизм и свободу от pycodestyle, придирчивого к форматированию. Вы сэкономите время и умственную энергию для более важных вопросов.

Отформатированный код выглядит одинаково независимо от проекта, который вы просматриваете.

#GitHub | #Python #Code #Useful

👉 @Githublib
Practical Guide To Computer Algorithms Using Python And C#
Lane, Ronald (2022)

The modified as well as updated 2nd edition of Vital Formulas, offers an available intro to computer algorithms. The book includes a summary of essential timeless formulas as well as describes when each is appropriate. The writer shows how to evaluate algorithms in order to comprehend their behavior and also shows methods that the can be made use of to produce new formulas to fulfill future requirements. The message includes valuable algorithms such as: methods for manipulating typical data structures, advanced data frameworks, network formulas, and mathematical algorithms. It likewise supplies a selection of basic problem-solving methods.

In addition to describing formulas and also approaches, the author supplies details on just how to evaluate the efficiency of algorithms. The book is filled with workouts that can be used to check out ways to modify the formulas in order to apply them to new scenarios. This updated version of Vital Formulas

Скачать книгу
Forwarded from Python академия
Mодуль cmath

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

📌Функция polar():
Эта функция возвращает полярное представление декартовой записи комплексного числа. Возвращаемое значение - это кортеж, состоящий из модуля и фазы.


📌Функция phase():
Эта функция возвращает угол против часовой стрелки между осью x и сегментом, соединяющим точку с исходной точкой. Угол представлен в радианах и находится между π и -π.


📌Функция rect():
Эта функция возвращает декартово представление комплексного числа, представленного в полярной форме, то есть по модулю и фазе.


📌Функция sin():
Эта функция возвращает тригонометрическое соотношение синуса фазового угла, представленного в радианах.

Подписывайтесь на канал 👉@pythonofff
Python lets you know the path to any source file. Within a file, __file__ returns the relative path to it:

$ cat test/foo.py
print(__file__)
$ python test/foo.py
test/foo.py


The typical usage for that is to find the path where the script is located. It can be helpful for finding other files such as configs, assets, etc.

To get the absolute path form the relative one you can use os.path.abspath. So the common idiom to get the script directory path is:

dir_path = os.path.dirname(
os.path.abspath(__file__)
)
Подборка каналов для 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