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

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

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
5👍2
🔊 Python-разработчик спас сон целого сообщества от воздушной пушки

В городе Корваллис, штата Орегон, США, фермеры повадились использовать воздушные пушки, чтобы отпугивать канадских казарок, водоплавающих птиц, которые любят разорять поля с овсом, ячменем, кукурузой и пшеницей. Один местный житель рассказал, что в январе пушки начали стрелять каждые две минуты в течение дня и ночи. Из-за этого многие люди в округе не могли уснуть.

К счастью, этот местный житель оказался программистом. Он нашёл способ определить источник назойливого шума.
🔸 Сначала программист попросил троих человек встать в разных местах и измерять точное время каждого выстрела из пушки. Это позволило определить область поиска.
🔸 Затем он написал программу на Python, которая могла перебирать все точки на изображении в области поиска.
🔸 В результате программист позвонил владельцу фермы, расположенной в одной из точек-кандидатов, и спросил, использует ли он воздушную пушку. Фермер отрицал, что включает отпугиватель птиц ночью, но после разговора выстрелы перестали беспокоить людей.

🔗 Прочесть эту историю подробнее и посмотреть исходный код программы можно здесь
👍25😁13🥱5🔥1
🧑‍🎓 Динамическая типизация в Python: основы

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

Код на Java (со статической типизацией):
int number = 5;
Код на Python:
number = 5
🤨 А если подробнее?
Переменная создаётся при первом присваивании ей значения. Последующие присваивания изменяют значение уже созданного имени.

Переменная не располагает никакой информацией о типе. Понятие типа обитает в объектах, а не в именах. Переменные же всегда просто ссылаются на определённый объект. А каждый объект содержит заголовочное поле с обозначением типа.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🥱11🔥6😁3🎉3❤‍🔥2
🐍 IPython — интерактивная оболочка для Python

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

Кроме того, IPython является ядром для Jupyter. Jupyter-ноутбук — это графическая веб-оболочка для IPython, которая расширяет идею консольного подхода к интерактивным вычислениям.

На днях вышла версия IPython 8.21.0.

Установка — pip install ipython

🔗 Документация проекта
👍10🔥1
👨‍💻 Python Multiprocessing. Обмен данными между процессами

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

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

✏️ Примеры кода из статьи
🔗 Сама статья
😁9👍5🔥1
Что выведет код с картинки выше?
Anonymous Quiz
8%
9
58%
8
11%
5
23%
Ошибка
👍27👏4😁2🔥1
🚀 Как быстрее прочитать много данных из Excel в Python?

Разработчик ПО Haki Benita написал любопытную статью, в которой сравнил разные способы прочесть экселевские данные. Автор создал файл Excel размером 25 МБ, содержащий 500 тысяч строк с различными типами столбцов. Далее он измерил скорость чтения для каждого из следующих методов:
▪️Pandas;
▪️Tablib;
▪️Openpyxl;
▪️LibreOffice;
▪️DuckDB;
▪️Calamine.

Один из способов позволил считать 500 тысяч строк менее, чем за 4 секунды. И это был Calamine.

👉 Подробности читайте в статье
👍32🔥1🥱1
🛠️ Django Debug Toolbar — панель отладки и профилирования Django приложений

Позволяет:
▪️эффективно инспектировать и отлаживать различные аспекты приложения;
▪️отслеживать SQL-запросы, включая время их выполнения;
▪️отслеживать логи и др.

На днях стала доступна последняя версия django-debug-toolbar 4.3.0

🔗 Документация
👍13🎉6🔥4
👩‍💻 Поиск самой быстрой JSON-библиотеки на Python

Автор свежего текста сравнивает между собой 8 библиотек:
▫️orjson
▫️pysimdjson
▫️yapic.json
▫️simplejson
▫️ujson
▫️python-rapidjson
▫️cysimdjson
▫️nujson (deprecated)

Бенчмарк запускали на всех версиях Python, начиная с 3.8 и заканчивая 3.13. В итоге, автор пришёл к выводу, что быстрее всех orjson.

🔗 Прочесть статью целиком можно тут

P.S.: комментаторы на Reddit отметили, что автор забыл ещё об одной библиотеке msgspec. Кто-то считает, что она быстрее orjson.
👍16🎉5🔥2
Кто нас не любит, тот просто нам завидует

#memes
😁5339🥰4🥱4👍2🤔1
🧑‍🎓 Решение задачи «Лучшее время для покупки и продажи акций»

Ус
ловие: Вам дан массив цен prices, в котором prices[i] — это цена данной акции в i-тый день. Вы хотите максимизировать свою прибыль, выбрав один день для покупки одной акции и выбрав другой день в будущем для продажи этой акции.
Верните максимальную прибыль, которую вы можете получить от этой сделки. Если вы не можете получить прибыль, верните 0.

Ре
шение: Предлагается решить задачу с помощью двух указателей. Сначала иницаилизируем левый и правый указатели для покупки и продажи соответственно. Также инициализируем нулём нашу прибыль (max_profit).

Далее мы проходим по массиву цен, используя цикл while, пока right (день продажи) меньше длины массива. На каждом шаге вычисляем текущую прибыль от продажи акции в день right, купленной в день left.

Если prices[left] < prices[right], это означает, что покупка акции в день left и продажа в день right приводит к положительной прибыли. В этом случае обновляется max_profit, если currentProfit больше текущего значения max_profit. Если цена покупки больше или равна цене продажи (prices[left] >= prices[right]), это означает, что продолжать держать текущую акцию не имеет смысла, и следует рассмотреть акцию в день right как новую точку покупки. Таким образом, left обновляется до right.

По окончании цикла возвращается max_profit. Если сделок, приводящих к прибыли, не было, функция вернёт 0. Сложность алгоритма O(n).

▶️Код:


def maxProfit(prices):
left = 0 #Покупка
right = 1 #Продажа
max_profit = 0
while right < len(prices):
currentProfit = prices[right] - prices[left]
if prices[left] < prices[right]:
max_profit =max(currentProfit,max_profit)
else:
left = right
right += 1
return max_profit
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍8
🐍 Вышел Flask 3.0.2

Это небольшое обновление, в котором исправили баги. В частности:
🔸 Исправили ошибку с типом при использовании jinja_loader
🔸 Убрали баг с CLI-опциями --extra-files и --exclude-patterns, из-за которого не запускался сервер.

Flask — это фреймворк для разработки веб-приложений. В нём есть:
▫️Сервер разработки и отладчик
▫️Интегрированная поддержка модульного тестирования
▫️Шаблонизатор Jinja2
▫️Поддержка безопасных файлов cookie и др.

🔗 Документация
👍20🔥1
🐍🎸 Курс Django. Часть 2: ORM и основы работы с базами данных

Продолжаем наш курс. В первой части мы узнали, как установить Django, настроить и запустить первый проект. Теперь рассмотрим создание базы данных на основе моделей, способы наполнения БД с использованием loaddata и скриптов, а также передачу данных на фронтенд с помощью функциональных представлений и шаблонов.

👉 Читать новую часть целиком
🔗 Зеркало
12👍4
🚀 Ускоряем анализ данных в 170 000 раз с помощью Python

Автор статьи итеративно оптимизировал код, чтобы посмотреть, чего можно достичь на Python.

Сначала разработчик значительно ускорил оригинальный код с помощью нескольких вспомогательных функций с JIT-компиляцией, а в итоге использовал JIT-компиляцию повсеместно (применял Numba). Также автор не обошёлся без профилирования.

👉 Прочесть статью со всеми подробностями можно тут
👍12🔥1
🚀🏢 Стартапы vs IT-гиганты: куда лучше устроиться Junior-разработчику

Представим ситуацию: вы начинающий разработчик с очень востребованным стеком (да, звучит как фантастика, но допустим). И так уж сложилось, что перед вами стоит выбор: пойти работать в стартап или крупную компанию. Причем предлагаемые условия абсолютно идентичны и там, и там.

Что же делать в такой ситуации?

👉 Разбираемся в статье
🔗 Зеркало
👍93🥱2