Библиотека питониста | 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
Назад в будущее: практическое руководство по путешествию во времени с Python

В Python есть несколько встроенных библиотек для работы со временем и интервалами времени: time, datatime, calendar, timeit. Но когда какой модуль использовать? Рассмотрим на примерах.

Смотреть статью
👍7
Инкремент с помощью __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