🐍 Python forever
2 subscribers
52 photos
8 files
36 links
Download Telegram
Forwarded from Senior Python Developer
This media is not supported in your browser
VIEW IN TELEGRAM
tqdm

Отличный инструмент для подключения диаграммы выполнения вашей программы. Название происходит от арабского слова "taqadum", что означает "прогресс".
Для создания прогресс-бара необходим лишь один вызов функции:

from tqdm import tqdm
from tqdm.notebook import tqdm # для использования в Jupyter Notebook

for i in tqdm(range(10000)):
...


На гифке пример прогрессбара. В реальном времени показывается процент выполнения, визуальное представление, сколько итераций завершилось, скорость выполнения и ожидаемое время окончания, а сам модуль не требует никаких внешних библиотек.
Forwarded from Senior Python Developer
Ограничение использования памяти и процессора

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

Для работы с процессором мы сначала получаем значения soft и hard лимитов для ресурса LIMIT_CPU, а затем ставим лимит, используя некоторое число секунд, задаваемое при помощи аргумента seconds, и значение hard лимита. После регистрируется обработчик signal, который начинает процедуру выхода при превышении выделенного нами времени. Для работы с памятью мы также получаем значения hard и soft лимитов, а потом ставим ограничения с помощью метода setrlimit, передавая в него размер ограничения и значение hard лимита.
Forwarded from Senior Python Developer
👨‍💻 Алгоритмы на Python — лекции МФТИ

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

Лекция №1
https://youtu.be/KdZ4HF1SrFs
Лекция №2
https://youtu.be/ZgSx3yH7sJI
Лекция №3
https://youtu.be/b8m9uRMpKJk
Лекция №4
https://youtu.be/DvsCUI5FNnI
Лекция №5
https://youtu.be/3I6OjxoeSS8

Весь плейлист с остальными лекциями: https://youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
Forwarded from Аркадий
по SQL я корчое что бы потренироватьься прорешал все задачки на SQL Academy, на это ушло часа 4 суммарно, там есть пара задач где пришлось подумать

https://sql-academy.org/ru/trainer?sort=byId
Процесс работы с ветками более подробно описан здесь: http://releaseflow.org/.

Общие требования к работе в git:

Любые изменения в исходном коде должны быть связаны с задачами из джиры;
Номер задачи из джиры должен дублироваться в комментарии к коммиту. Так как зачастую после слияния веток невозможно понять, где выполнялись работы;
Для упрощения работы рекомендуется установить локальные хуки (https://github.com/aeroclub-it/infrastructure-githooks). Для их работы требуется установленный python версии 3.X;
Работу с ветками можно осуществлять через скрипты (https://github.com/aeroclub-it/infrastructure-release-scripts). Они подключаются в репозиторий как подмодуль.

Для работы с исходным кодом используются следующие ветки:

master - рабочая, протестированная, стабильная версия. Предназначена для выкладки в прод;
develop - тестовая версия. Предназначена для выкладки в тест;
release/XXX - ветка, предназначенная для сборки релиза. Создается из ветки master, в нее сливаются задачи, которые нужно выпустить в текущем релизе. Все конфликты мерджей решаются здесь же. XXX - номер релиза;
feature/XXX - ветка, предназначенная для выполнения доработок. XXX - номер задачи из джиры;
hotfix/XXX - ветка, предназначенная для исправления багов. XXX - номер задачи из джиры;
создание веток с другими названиями не допускается.
Forwarded from [PYTHON:TODAY]
leetcode_python.pdf
552 KB
✍️ Огромный сборник решений задач leetcode на Python c описанием и кодом

LeetCode
— онлайн-платформа с алгоритмическими задачами по программированию, своего рода тренажёр для подготовки к техническим интервью.

#doc #python #cheatsheet
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Anthony
@FastAPI

Очень годный курс по FastAPI

Он включает в себя:

- celery
- redis
- "кеширование"
- middleware
- websocket
- pytest

Я думаю, список будет расширяться, канал новый (несколько месяцев).

Почему я советую посмотреть этот материал всем?

Я считаю, что разработка на FastAPI проще чем на Django

У FastAPI проще документация, скорость выше и тд

Но многих это отталкивало то, что FastAPI новый инструмент (года 2, если не ошибаюсь) и качественного материала в .ru сегменте было мало

Но на этом канале собрана ОЧЕНЬ качественная информация и хорошая подача

Кому советую посмотреть?

Я считаю(имхо), что скорость "вкатывания" в backend разработку через FastAPI будет быстрее чем через Django

В первую очередь, я советую посмотреть этот плейлист тем, кто только выучил синтаксис и собирается писать свой первый пет-проект. Будет проще чем Django (имхо). Вакансий на FastAPI достаточно (35-40% backend на Python)

Если ты уже почти всё выучил(выучила) в Django, в любом случае советую ознакомиться.
Полезно будет 100%. Решение на чём работать сделаешь потом сам(сама)

В общем, советую посмотреть всем Python backend developer-ам!
Смотрится на одном дыхании 🐺🐺🐺
Please open Telegram to view this post
VIEW IN TELEGRAM
Если интервьюер, говорит, что твоё решение не оптимальное, то тебе необходимо сразу отбросить всё что связано с квазилинейной сложностью O(n*logn) - использование сортировки.
Нужно искать линейный алгоритм и забить на сортировку.

Линейный алгоритм это значит что нужно просто пройтись по всем элементам. В лоб пройтись не получиться, иначе снова упираемся в сортировку.
Нужно задавать вопросы про входные данные
Итерация в цикле, использование указателей. Базовые алгоритмы - полный перебор, разделяй и властвуй, поиск в ширину, поиск в глубину,

Скользящее окно???
Для общего развития динамическое программирование
МНОГО ТРЕНИРОВКИ. Минимум 100 задач на уровне изи в литкоде. Делать самому, не юзать IDE
Алгоритмы:

1. Два указателя
2. Итерация, итерация в цикле, итератор
3. Полный перебор
4. Разделяй и властвуй
5. Поиск в ширину
6. Поиск в глубину
7. Сортировка
8. Связанный список
9. Hash Map
10. Деревья

*Динамическое программирование
Паттерн Guard Expression в функции, которые отсекает приграничные условия и сразу возвращает что то не давая ВСЕЙ функции занимать ресурсы.
def test():
if n == 0:
return None
- оператор==проверяет равенство значений двух объектов

- оператор is проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти
Кортеж можно распаковывать, а датакласс нельзя
Датакласс более эффективные по памяти, они могут быть так же не изменяемыми как кортежи
Декларативный и императивный подходы.
Декларативный подход - говорим что делаем
Императивный подход - говорим как делаем