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

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

РКН clck.ru/3Ko7Hq
Download Telegram
Советы по Python

1. Объединение списков с помощью Zip
Берет несколько коллекций и возвращает новую коллекцию.
Каждый элемент новой коллекции содержит по одному элементу из всех исходных коллекций.
Так мы получаем «пересечения» сразу по нескольким коллекциям
name = ‘farhad’
suffix = [1,2,3,4,5,6]
zip(name, suffix)
→ возвращает (f,1),(a,2),(r,3),(h,4),(a,5),(d,6)


2. Освобождение памяти
Механизм сборки мусора вручную можно настроить по времени или событиям.
import gc
collected_objects = gc.collect()


3. Использование декораторов
Декораторы добавляют функциональность коду. То есть это функции, вызывающие другие объекты/функции. Будучи вызываемыми функциями, декораторы возвращают объект, который будет вызываться при вызове функции-декоратора.
Вспомните о декораторах, которые реализуют аспектно-ориентированное программирование.
Мы можем обернуть класс/функцию, и тогда каждый раз при вызове функции будет выполняться определенный код.
Данный пример показывает, как можно вывести название функции. Это тестовый пример для вызова декоратора. С помощью декораторов можно вызывать логгеры (logger), выполнять операции по обеспечению безопасности и т.д.

def my_logger(function):

@functools.wraps(function)
def logger(*args, **kwargs):
print(function.__name__)
return function(*args, **kwargs)
return logger

Теперь воспользуйтесь этим в своих функциях:

@my_logger
def hi():
print ‘hi’
@my_logger
def bye(a):
print ‘bye’ + a


4. Распаковка
name = ‘farhad’
suffix = [1,2,3,4,5,6]
result = zip(name, suffix)
→ возвращает (f,1),(a,2),(r,3),(h,4),(a,5),(d,6)
unzipped = zip(*result)


5. Присоединение коллекции
name = [“FinTech”, “Explained”]
print(“ “.join(name))



@BookPython
👍3
Советы по Python

1. Объем памяти объекта
import sys
x = ‘farhadmalik’
print(sys.getsizeof(x))


2. Вывод текущей директории
import os
print(os.getcwd())


3. Вывод импортированных модулей
import sys
imported_modules = [m.__name__ for m in sys.modules.values() if m]


4. Получение ID текущего процесса
import os
os.getpid()


@BookPython
👍3
Python-скрипт на 20 строк, который каждый день желает родителям доброго утра через WhatsApp

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

В этом руководстве мы напишем простой Python-скрипт, предназначенный для отправки WhatsApp-сообщений. В ходе работы будем пользоваться Python-пакетом Twilio. Для организации ежеднев

Rus https://habr.com/ru/companies/ruvds/articles/463933/

Eng https://betterprogramming.pub/i-wrote-a-script-to-whatsapp-my-parents-every-morning-in-just-20-lines-of-python-code-5d203c3b36c1

@BookPython
👍3🔥2
Потрясающе быстрые сборки Docker на Python с помощью Poetry 🏃

Как превратить медленные и утомительные сборки Docker в бесперебойную работу

Создание образов Docker для вашего проекта обычно подразумевает установку его зависимостей воспроизводимым и детерминированным способом. В сообществе Python Poetry является одним из наиболее популярных инструментов для достижения этой цели. Однако неоптимальное использование Poetry в сборках Docker может привести к низкой производительности и длительным сборкам, что в конечном итоге снижает производительность разработчика.

https://medium.com/@albertazzir/blazing-fast-python-docker-builds-with-poetry-a78a66f5aed0

@BookPython
👍2
Как мы делали скоринг на микросервисной архитектуре руками не-программистов


2023 год — год противоречивых сигналов для будущего IT-отрасли и, в частности, занятости айтишников.

С одной стороны, с поголовной цифровизацией всех сфер и процессов экономики растёт спрос на разработчиков — что, безусловно, плюс для айтишников.

С другой — необходимость участия программистов во многих прежде «аналоговых» процессах как таковая стала превращаться в препятствие для цифровизации. Естественным образом, со стороны заказчиков и работодателей возник спрос на решения, которые позволят оцифровывать и автоматизировать процессы без необходимости заменять весь прежний штат программистами. Компании ищут выходы где угодно, включая надежды на то, что программистов заменят нейросети.

https://habr.com/ru/articles/731596/

@BookPython
👍1🤔1
8 лучших алгоритмов, которые должен знать каждый программист 💯

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

https://python.plainenglish.io/top-8-algorithms-every-programmer-should-know-93c826267938

@BookPython
👍4
Создание Python REPL с поддержкой ChatGPT

В этом блоге я делюсь своим опытом создания Python REPL, дополненного ChatGPT. Я рассказываю о том, как создавалось приложение, и рассуждаю о паттернах и парадигмах программной инженерии, которые могут появиться в системах, построенных на основе больших языковых моделей (LLM).

https://isthisit.nz/posts/2023/building-a-chat-gpt-enhanced-python-repl/

@BookPython
👍1
diagrams

🎨 Диаграмма как код для прототипирования архитектур облачных систем

https://github.com/mingrammer/diagrams

@BookPython
👍4
Подборка Telegram каналов для программистов

Системное администрирование 📌
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/sysadminoff Новости Линукс Linux


https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)

https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика

https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике

https://t.me/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста

1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим 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
https://t.me/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
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/books_reserv Книги для программистов

БигДата, машинное обучение 📌
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/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров

Английский 📌
https://t.me/UchuEnglish Английский с нуля

Математика 📌
https://t.me/Pomatematike Канал по математике

Excel лайфхак📌
https://t.me/Excel_lifehack
1🦄1
Метод partition()

Метод partition() разбивает строку по заданной подстроке. После этого результат возвращается в виде кортежа. При этом подстрока, по которой осуществлялась разбивка, тоже входит в кортеж.

@BookPython
👍4
Сортировка данных CSV файла на Python 🐍

В этом коде мы открываем файл input.csv, считываем его содержимое в список data, сортируем список по первому столбцу и записываем отсортированные данные в новый файл output.csv.

@BookPython
👍3
9 способов совместного использования массива Numpy между процессами

Существует множество способов передачи массива numpy между процессами, например, как аргумент функции, как наследуемая глобальная переменная, через очередь или трубу, как ctype Array и RawArray, файл с привязкой к памяти, массив с поддержкой SharedMemory или через менеджер.

В этом уроке вы познакомитесь с набором подходов, которые можно использовать для совместного использования массива numpy между процессами python.

https://superfastpython.com/numpy-share-array-processes/

@BookPython
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
QR + Tetris = QRTetris

Установка
git clone https://github.com/Firemoon777/qrtetris.git
python3 -m pip install -r requirements


https://github.com/Firemoon777/qrtetris

@BookPython
👍9
Python декораторы на максималках. Универсальный рецепт по написанию и аннотированию от мала до велика

Декорирование функций - это, наверное, самая сложная среди базовых и самая простая среди продвинутых фич языка Python. С декораторами, наверное, знакомы все джуны (хотя бы в рамках подготовки к собеседованиям). Однако, крайне мало разработчиков пишут их правильно. Особенно принимая во внимания тенденции последних нескольких лет к аннотированию всего и вся. Даже популярные open-source проекты (если основная часть их кода была написана до 2018 года) вряд ли дадут вам примеры декораторов, отвечающих всем современным требованиям к коду.

https://habr.com/ru/articles/750312/

@BookPython
👍4
🏆 Yandex Cup 2023 — открытый чемпионат для настоящих творцов

Разработчики — художники нового мира. Они создают смыслы, правила и законы, манифестируют идеи, творят миры и целые вселенные. И, если их предшественники делали это, используя слова, краски и звуки, то современные творцы создают новую реальность с помощью программного кода.

Искусство писать код

Тема чемпионата в этом году «Решаем искусство». Участников ждут нестандартные задачи на стыке IT и творчества, а лучшие встретятся лицом к лицу в финале, чтобы оживить арт-инсталляцию и разделить между собой 8 500 000 рублей.

Показать своё мастерство можно в 6 направлениях:

🔸 Фронтенд
🔸 Бэкенд
🔸 Мобильная разработка
🔸 Аналитика
🔸 Алгоритмы
🔸 Машинное обучение

Финал и церемония награждения пройдут офлайн в офисе Яндекса в Казахстане. Яндекс предоставит финалистам проезд и проживание в Алматы.

Регистрация открыта до 29 октября включительно:

👉 Участвую!

#Yandex_Cup23
11👍5🔥5👎1
Улучшение кода Django с помощью pre-commit

Pre-commit - это инструмент, позволяющий автоматизировать процесс проверки кода на наличие ошибок и проблем перед его коммитом в репозиторий, отсюда и название.

Проще говоря, он поможет вам выявить ошибки и недочеты. Кроме того, он может сортировать импортируемые файлы в соответствии с рекомендациями PEP, а также линтировать код для улучшения его читаемости.

https://builtwithdjango.com/blog/improve-your-code-with-pre-commit

@BookPython
👍5
Python: 7 потрясающих примеров использования лямбда-функции

У лямбда-функции, безусловно, много вариантов использования. Здесь собраны наиболее важные места, где может использоваться лямбда-функция (с примерами кода). Вы можете сохранить эту статью для дальнейшего использования!

На данный момент я добавил 7 примеров использования. Я буду обновлять эту статью, если появятся другие случаи использования лямбда-функции.

https://python.plainenglish.io/python-7-mind-blowing-use-cases-of-the-lambda-function-3bb896f866af

@BookPython
👍3
Что такое wheel и eggs в Python? Какая между ними разница?

Python wheel - Это стандартный формат установки дистрибутивов Python, который содержит все файлы и метаданные, необходимые для установки. Файл WHL также содержит информацию о версиях и платформах Python, поддерживаемых этим файлом. Расширение файла wheel - .whl

Python egg - Это сжатый архив ZIP, содержащий исходные файлы приложения Python вместе с метаинформацией о дистрибутиве. Расширение файла egg - .egg

Основная разница заключается в том, что wheel предоставляет более простой и надежный способ установки пакетов. В отличие от eggs, он не требует установки дополнительных зависимостей и обеспечивает более быстрое время установки. Кроме того, wheel поддерживает все платформы, на которых может работать Python.

@BookPython
У нас в Excel поселился замечательный Python

На Хабре уже была новость об этом знаменательном событии. Правда, она похожа на пересказ официального пресс-релиза Microsoft, но такой и должна быть "новость".

Я же по какой‑то непонятной мне самому причине начал пробовать использовать Python внутри Excel раньше, несколько недель тому назад. Безуспешно. Не получилось вопреки всем моим усилиям: в начале подключился к Microsoft 365 Insider, Beta Channel — там опции не наблюдалось, затем загрузил add‑in от Excel Labs, Microsoft Garage project — фича, хотя и запустилась, но у меня не работала, постоянно возвращая ошибки.

И вот 12.10.2023 пришёл и-мейл с радостным известием и после обновления Office (уточняю - Microsoft 365 Insider, Beta Channel) в меню Formulas есть опция Python in Excel

https://habr.com/ru/articles/769732/

@BookPython
👍10