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

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

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Требования к Python-разработчику на мировом рынке 2019 года
Исследование о наборе навыков, необходимых Python-разработчику в 2019 году. Будьте самым востребованным на мировом рынке труда!

#статьядня

https://prglb.ru/22gh6
Вероятно, самая распространенная ошибка новичка в Python - предоставление изменяемого объекта в качестве аргумента функции по умолчанию. Этот объект является общим для всех вызовов функций, которые могут привести к странным результатам:

#codeexample


def append_length(lst=[]):
lst.append(len(lst))
return lst

print(append_length([1, 2])) # [1, 2, 2]
print(append_length()) # [0]
print(append_length()) # [0, 1]


Тем не менее, для разных кэшей может быть полезно совместное использование:

def fact(x, cache={0: 1}):
if x not in cache:
cache[x] = x * fact(x - 1)

return cache[x]

print(fact(5))


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

>>> fact._defaults_
({0: 1, 1: 1, 2: 2, 3: 6, 4: 24, 5: 120},)
Вы можете использовать любой объект в качестве ключа в 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