Библиотека питониста | Python, Django, Flask
40.5K subscribers
2.79K photos
75 videos
51 files
4.37K links
Все самое полезное для питониста в одном канале.

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

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Вы можете использовать любой объект в качестве ключа в Python, если он реализует метод __hash__. Этот метод может возвращать любое целое число, если выполняется только одно требование: одинаковые объекты должны иметь одинаковые хэши (не наоборот).

#codeexample

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

Есть также одна странная вещь, которая может удивить вас во время отладки или модульного тестирования:

...: class A:
...:     def __init__(self, x):
...:         self.x = x
...:
...:     def __hash__(self):
...:         return self.x
...:
In : hash(A(2))
Out: 2
In : hash(A(1))
Out: 1
In : hash(A(0))
Out: 0
In : hash(A(-1))  # sic!
Out: -2
In : hash(A(-2))
Out: -2


В CPython -1 внутренне зарезервирован для состояний ошибок, поэтому он неявно преобразуется в -2.
Серия полезных видео для Python разработчика
1. Ты неправильно замеряешь время в Python! Или нет? 
2. Запуск среды разработки в tmux 
3. Ищем ботов в Instagram подписчиках на Python 
4. Разрабатывать в Vim или в IDE? Vim vs IDE. Где писать код? 
5. Именование переменных, классов и методов в коде 

#youtubeдня

https://prglb.ru/4j5vv
Видео докладов с Python Meetup Chelyabinsk #5
1. GIL: почему это боль и как с ним жить — Иван Меньших, RaRe Technologies
2. Introducing dry-python — Артем Малышев
3. Что внутри asyncio — Александр Меренков, Antida software
4. Как прокачать линтер — Максим Мазаев, ЦИАН
5. Один в поле не воин, или причем тут OSS — Егор Пирогов, 100 Макетов

#видеодня

https://prglb.ru/5tpbk
Совет по Python Pro: Хотите использовать R / Java / C или любой другой язык в Python?
Python предоставляет наиболее простой способ справиться с ситуациями, когда нам приходится переключаться между несколькими языками.

#статьядня

https://prglb.ru/4klve
​​Когда скончалась фантазия: подборка идей для создания проекта
Реализовываете скучные концепции, потому что так советуют в учебниках? Чтобы такого не было, мы собрали несколько идей для создания проекта.

#стятьядня

https://prglb.ru/47lwi
Visual Studio Code для Python разработчика
Из данного видео вы узнаете, как установить VSCode, установить расширение Python, как изменить интерпретаторы Python, создать виртуальные среды, отформатировать/интерпретировать ваш код, как использовать Git в VSCode, как отлаживать программы, как выполнять модульное тестирование и многое другое.

#видеодня

https://prglb.ru/1kura
Как использовать sorted() и sort() в Python
В этом руководстве вы узнаете, как сортировать различные типы данных в разных структурах данных, настраивать порядок и работать с двумя различными методами сортировки в Python.

#статьядня

https://prglb.ru/1ca2w
Sockets with Python 3
В данном видеокурсе автор раскажет все о библиотеке сокетов - части стандартной бибилотеки Python.

#видеодня

https://prglb.ru/2skbn
В Python 3.4+ вы можете использовать contextlib.suppress(), чтобы выборочно игнорировать определенные исключения:

#codeexample

import contextlib

with contextlib.suppress(FileNotFoundError):
os.remove('somefile.tmp')


# Это эквивалентно:

try:
os.remove('somefile.tmp')
exept FileNotFoundError:
pass


# Вернуть менеджер контекста, который подавляет
# любое из указанных исключений, если они встречаются
# в теле оператора with, а затем возобновляет
# выполнение с первым оператором после конца
# оператора with."
Ближе к земле: Python и низкоуровненые операции
Сегодня мы расскажем, как особенности работы с компьютерной памятью влияют на функциональные возможности Python, разберёмся, где этот язык теряет скорость и почему это не мешает ему обходить конкурентов по эффективности программирования.

#статьядня

https://prglb.ru/1bodt
Python Requests Beginner Tutorial - GET Requests With Translate API
В этом видео автор представит вам библиотеку запросов Python, рассказывая о том, как выполнять запросы GET и POST и продемонстрирует их отправку с помощью Stripe API.

#видеодня

Часть 1:
https://prglb.ru/3dx3q

Часть 2:
https://prglb.ru/4sd93
Вместо изменения оформленной функции вы можете создать другой вызываемый класс, который будет возвращать его экземпляры вместо функции:

#codeexample

lass CallableWithOrig:
def __init__(self, to_call, orig):
self._to_call = to_call
self._orig = orig

def __call__(self, *args, **kwargs):
return self._to_call(*args, **kwargs

@property
def orig(self):
if isinstance(self._orig, type(self)):
return self._orig.orig
else:
return self._orig

class SavingOrig:
def __init__(self, another_decorator):
self._another = another_decorator

def __call__(self, f):
return CallableWithOrig(self._another(f), f)

saving_orig = SavingOrig
Алгоритмы сортировки с примерами на Python
Иногда данные, которые мы храним или извлекаем в приложении, могут иметь небольшой или нулевой порядок. Возможно, придется изменить данные, чтобы правильно их обработать или эффективно использовать.
В этой статье рассмотрены популярные алгоритмы сортировки, принципы их работы, и представлены примеры на Python. Также автор сравнивает, как быстро они сортируют элементы в списке.

#статьядня

https://prglb.ru/3yo22
Спортивное программирование на Python

Event: PYCON RUSSIA 2018
Speaker: Андрей Солдатенко

#видеодня

https://prglb.ru/1rf1n
​​Работаете с масивами данных, но не используете Python?
Смело обрабатывайте сотни гигабайт, автоматизируйте отчетность, стройте «дэшборды», решайте повседневные аналитические задачи с помощью Python → https://clc.to/juwjnw

В SkillFactory стартует онлайн-курс "Python для анализа данных", где вы сможете поднять ваши навыки до аналитика продвинутого уровня.

Уделив 8 недель изучению Python для аналитики, следующие 90% времени вы сможете заниматься генерацией идей по развития бизнеса, а не длительным сбором данных!

Успейте забронировать место на курсе со скидкой 20%
Воспроизведение и запись звука в Python

Из данной статьи вы узнаете, как:
1. Воспроизводить файлы MP3 и WAV, а также ряд других аудиоформатов.
2. Воспроизводить массивов NumPy и Python, содержащих звук.
3. Записывать звук с помощью Python.
4. Сохранять свои записи или аудиофайлы в различных форматах.

#статьядня

https://prglb.ru/ulk1
Вы можете добавлять символы Юникода в строковый литерал не только по его номеру, но и по его имени.

#codeexample

>>> '\N{EM DASH}'
'—'
>>> '\u2014'
'—'

Он также совместим с f-строками:

>>> width = 800
>>> f'Width \N{EM DASH} {width}'
'Width — 800'
Три способа хранения и доступа к множеству изображений в Python

Из данной статьи вы узнаете о:
- хранении изображения на диске в виде файлов .png
- хранении изображений в базах данных с отображением молниеносной памяти (LMDB)
- хранении изображений в иерархическом формате данных (HDF5)

#статьядня

https://prglb.ru/3h5en
Асинхронщина с базами данных: aiopg и другие звери

В данном выпуске aiopg - библиотека для взаимодействия с PostgreSQL при асинхронном программировании на Python, и работа с БД в условиях асинхронщины в целом.
Гость студии — старший разработчик SoftPro, мейнтейнер библиотеки aiopg Алексей Фирсов.

#видеодня

https://prglb.ru/4duid
@pythonbooks - канал с книгами на русском и английском языке для тех, кто хочет стать трушным Python Developer(ом). Скачивайте книги у нас @pythonbooks.