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

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

РКН clck.ru/3Ko7Hq
Download Telegram
Как не просто выучить Python, а разобраться в алгоритмах и структурах данных, автоматических тестах, освоить Django и всё необходимое для качественной разработки в команде?

Например, освоить профессию на Хекслете. Курс невозможно просто «отсидеть» или «прослушать», на нём дают только самое необходимое для условий реального продакшена — доступ к Open Source проектам, базе тестовых задач для подготовки к собеседованиям, кейсы для портфолио.

Так что многие студенты получают оффер ещё во время обучения. Работодатели указывают курсы Хекслета как преимущество при найме.

Узнайте подробнее о профессии «Python-разработчик» и оцените формат школы — https://clck.ru/gmXGE
All objects in Python are created via the call to the __new__ method. Even if you provide custom __new__ for your class, you have to call super().__new__(...).

You might think that object.__new__ is a root implementation that is responsible for the creation of all objects. That is not entirely true. There are several such implementations, and they are incompatible. For example, dict has its own low-level __new__ and objects of types derived from dict can't be created with object.__new__:

In : class D(dict):
...: pass
...:

In : class A:
...: pass
...:

In : object.__new__(A)
Out: <__main__.A at 0x7f200c8902e8>

In : object.__new__(D)
...
TypeError: object.__new__(D) is not safe,
use D.__new__()
Подборка каналов для 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 sort a dictionary by its values you use sorted with the custom key function:

>>> d = dict(a=1, c=3, b=2)
>>> sorted(d.items(), key=lambda item: item[1])
[('a', 1), ('b', 2), ('c', 3)]


However, such function already exists in the operator module:

>>> sorted(d.items(), key=itemgetter(1))
[('a', 1), ('b', 2), ('c', 3)]


You can also sort keys instead of items:

>>> sorted(d, key=lambda k: d[k])
['a', 'b', 'c']


Again, this lambda can be replaced with the already existing method:

>>> sorted(d, key=d.get)
['a', 'b', 'c']
Forwarded from Python академия
Зачем и как использовать аннотации типов

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

Подписывайтесь на канал 👉@pythonofff
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