Библиотека питониста | Python, Django, Flask
39.9K subscribers
2.88K photos
80 videos
51 files
4.48K links
Все самое полезное для питониста в одном канале.

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

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Инкремент с помощью __pos__

В Python нет операции инкремента ++ как в си-подобных языках, поэтому используется x += 1. Однако запись ++x является валидным кодом (но не x++), так как это просто два унарных оператора сложения.

При применении унарного плюса у объекта вызывается магический метод __pos__, то есть запись ++x можно понять как x.__pos__().__pos__(). Зная это, можно реализовать класс, который будет представлять число и поддерживать поведение инкремента.

Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода __pos__. Если реализовать все остальные необходимые магические методы, то может получится полноценный класс числа, но в продакшене такие приколы лучше не писать.
👍9🔥42
Сортировка вставками (объяснение алгоритма)

Как и сортировка выборкой, этот алгоритм сегментирует список на две части: отсортированную и неотсортированную. Алгоритм перебирает второй сегмент и вставляет текущий элемент в правильную позицию первого сегмента.

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

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

Время сортировки вставками в среднем равно O(n²), где n — количество элементов списка.
👍133
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🐍 Самоучитель по Python для начинающих. Часть 20: Графический интерфейс на Tkinter

Расскажем о преимуществах и недостатках Tkinter, изучим основы создания GUI и разберемся в особенностях компоновки виджетов с помощью pack(), place() и grid(). В конце статьи – 10 практических заданий по разработке GUI для Python-программ.

🔗 Основной сайт
🔗 Зеркало
🔥6👍2
🧒👾Тест-игра на выживание: как джуну протянуть первую рабочую неделю и не потерять работу

Первая неделя на новой работе – это всегда стресс для разработчика. В голове тысяча мыслей, давление зашкаливает, и сердце стучит без остановки. Знаете ли вы, как в такой ситуации не перегореть на старте? Если да, тогда вы легко пройдете нашу мини-игру на выживание про адаптацию джуна в незнакомых условиях. Итак, представьте: желанный оффер уже получен, вас приняли в компанию вашей мечты и сегодня первый рабочий день.

🔗 Основной сайт
🔗 Зеркало
👍162
re.split

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

Как вы можете видеть выше, образец символа «y» встречается три раза, и выражение разделено во всех случаях, где оно встречается.
👍195😁1
🐍🐬 Python + MySQL: как подключиться к СУБД MySQL и работать с ней с помощью Python

Из этой статьи вы узнаете, как подключиться к MySQL с помощью Python и выполнить основные команды для работы с данными в таблице: установка необходимых библиотек, подключение к базе данных, создание и удаление таблицы, добавление, извлечение и удаление данных из таблицы.

🔗 Основной сайт
🔗 Зеркало
👍109🤯4
Узнаем точное время с помощью Python

Все мы в детстве звонили по номеру 100 и узнавали точное время. Python позволяет сэкономить наши деньги и при помощи модуля time выдает нам текущее время.
🔥177👍4😁1🤔1
Задаем ширину текста

Метод fill() модуля textwrap разбивает text по строкам так, что каждая строка имеет не более width(в нашем случае 24) символов длиной.

Метод возвращает одну строку, содержащую заключенный абзац.
👍215
Ускоряем или замедляем видеоролик в несколько раз с помощью Python

MoviePy — это модуль Python для редактирования видео, который можно использовать для основных операций с видео и GIF.

С помощью метода clip.fx(vfx.speedx, m) мы ускоряем или замедляем видеоролик, используя переменную m в качестве показателя изменения скорости видео.

Подробнее можно почитать здесь.
👍166