Пакеты Python: учебник для специалистов по работе с данными.
https://dagster.io/blog/python-packages-primer-1
https://dagster.io/blog/python-packages-primer-1
dagster.io
Python Packages Primer for Data People 1/2
Start mastering Python project structure with this guide to modules, imports, and package organization for data practitioners.
👍1🔥1
Назад в будущее: практическое руководство по путешествию во времени с Python
В Python есть несколько встроенных библиотек для работы со временем и интервалами времени: time, datatime, calendar, timeit. Но когда какой модуль использовать? Рассмотрим на примерах.
Смотреть статью
В Python есть несколько встроенных библиотек для работы со временем и интервалами времени: time, datatime, calendar, timeit. Но когда какой модуль использовать? Рассмотрим на примерах.
Смотреть статью
Библиотека программиста
Назад в будущее: практическое руководство по путешествию во времени с Python
В Python есть несколько встроенных библиотек для работы со временем и интервалами времени: time, datetime, calendar, timeit. Но когда какой модуль использовать? Рассмотрим на примерах.
👍7
Инкремент с помощью __pos__
В Python нет операции инкремента
При применении унарного плюса у объекта вызывается магический метод
Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода
В Python нет операции инкремента
++
как в си-подобных языках, поэтому используется x += 1
. Однако запись ++x
является валидным кодом (но не x++
), так как это просто два унарных оператора сложения.При применении унарного плюса у объекта вызывается магический метод
__pos__
, то есть запись ++x
можно понять как x.__pos__().__pos__()
. Зная это, можно реализовать класс, который будет представлять число и поддерживать поведение инкремента.Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода
__pos__
. Если реализовать все остальные необходимые магические методы, то может получится полноценный класс числа, но в продакшене такие приколы лучше не писать.👍9🔥4❤2
Сортировка вставками (объяснение алгоритма)
Как и сортировка выборкой, этот алгоритм сегментирует список на две части: отсортированную и неотсортированную. Алгоритм перебирает второй сегмент и вставляет текущий элемент в правильную позицию первого сегмента.
Предполагается, что первый элемент списка отсортирован. На каждом шаге переходим к следующему элементу, обозначим его х. Если х больше прошлого элемента, оставляем x на своём месте. Если x меньше прошлого элемента, копируем прошлый элемент на вторую позицию, а х устанавливаем на его место.
Переходя к другим элементам несортированного сегмента, перемещаем более крупные элементы в отсортированном сегменте вверх по списку, пока не встретим элемент меньше x или не дойдём до конца списка. В первом случае x помещается на правильную позицию.
Время сортировки вставками в среднем равно O(n²), где n — количество элементов списка.
Как и сортировка выборкой, этот алгоритм сегментирует список на две части: отсортированную и неотсортированную. Алгоритм перебирает второй сегмент и вставляет текущий элемент в правильную позицию первого сегмента.
Предполагается, что первый элемент списка отсортирован. На каждом шаге переходим к следующему элементу, обозначим его х. Если х больше прошлого элемента, оставляем x на своём месте. Если x меньше прошлого элемента, копируем прошлый элемент на вторую позицию, а х устанавливаем на его место.
Переходя к другим элементам несортированного сегмента, перемещаем более крупные элементы в отсортированном сегменте вверх по списку, пока не встретим элемент меньше x или не дойдём до конца списка. В первом случае x помещается на правильную позицию.
Время сортировки вставками в среднем равно O(n²), где n — количество элементов списка.
👍13❤3
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🐍 Самоучитель по Python для начинающих. Часть 20: Графический интерфейс на Tkinter
Расскажем о преимуществах и недостатках Tkinter, изучим основы создания GUI и разберемся в особенностях компоновки виджетов с помощью pack(), place() и grid(). В конце статьи – 10 практических заданий по разработке GUI для Python-программ.
🔗 Основной сайт
🔗 Зеркало
Расскажем о преимуществах и недостатках Tkinter, изучим основы создания GUI и разберемся в особенностях компоновки виджетов с помощью pack(), place() и grid(). В конце статьи – 10 практических заданий по разработке GUI для Python-программ.
🔗 Основной сайт
🔗 Зеркало
🔥6👍2
Ускоряем Python в сто раз при помощи менее чем ста строк на Rust.
https://habr.com/ru/companies/ruvds/articles/732530/
https://habr.com/ru/companies/ruvds/articles/732530/
Хабр
Ускоряем Python в сто раз при помощи менее чем ста строк на Rust
Однажды на работе у нас возникла проблема с производительностью одной из наших основных Python-библиотек. Эта библиотека формирует фундамент нашего конвейера 3D-обработки. Это довольно большая и...
❤11👍3
О разнице между лямбдами и обычными функциями и о имплементации лямбд в некторых языках программирования.
https://habr.com/ru/articles/732434/
https://habr.com/ru/articles/732434/
Хабр
О разнице между лямбдами и обычными функциями и о имплементации лямбд в некторых языках программирования
Цель настоящей статьи - изучить лямбда функции: чем они отличаются от обычных функций и изучить, как они реализованы в С++, Python 3 и Java. На протяжении этой статьи я буду использовать godbolt.org ,...
👍8❤1
🧒👾Тест-игра на выживание: как джуну протянуть первую рабочую неделю и не потерять работу
Первая неделя на новой работе – это всегда стресс для разработчика. В голове тысяча мыслей, давление зашкаливает, и сердце стучит без остановки. Знаете ли вы, как в такой ситуации не перегореть на старте? Если да, тогда вы легко пройдете нашу мини-игру на выживание про адаптацию джуна в незнакомых условиях. Итак, представьте: желанный оффер уже получен, вас приняли в компанию вашей мечты и сегодня первый рабочий день.
🔗 Основной сайт
🔗 Зеркало
Первая неделя на новой работе – это всегда стресс для разработчика. В голове тысяча мыслей, давление зашкаливает, и сердце стучит без остановки. Знаете ли вы, как в такой ситуации не перегореть на старте? Если да, тогда вы легко пройдете нашу мини-игру на выживание про адаптацию джуна в незнакомых условиях. Итак, представьте: желанный оффер уже получен, вас приняли в компанию вашей мечты и сегодня первый рабочий день.
🔗 Основной сайт
🔗 Зеркало
👍16❤2
PySpark для аналитика. Как правильно просить ресурсы и как понять, сколько нужно брать
https://habr.com/ru/companies/avito/articles/732870/
https://habr.com/ru/companies/avito/articles/732870/
Хабр
PySpark для аналитика. Как правильно просить ресурсы и как понять, сколько нужно брать
Привет! Меня зовут Александр Ледовский. Я тимлид команды аналитики и DS, мы строим рекламные аукционы в Авито. Для работы с поисковыми логами мы пользуемся Apache Spark. Я расскажу о моём опыте работы...
👍10❤2
re.split
Это выражение разделит строку в том месте, где в строке встречается указанный шаблон. Он также вернет текст всех групп в шаблоне, если в шаблоне используется расширенная функция, такая как захват круглых скобок.
Как вы можете видеть выше, образец символа «y» встречается три раза, и выражение разделено во всех случаях, где оно встречается.
Это выражение разделит строку в том месте, где в строке встречается указанный шаблон. Он также вернет текст всех групп в шаблоне, если в шаблоне используется расширенная функция, такая как захват круглых скобок.
Как вы можете видеть выше, образец символа «y» встречается три раза, и выражение разделено во всех случаях, где оно встречается.
👍19❤5😁1
🐍🐬 Python + MySQL: как подключиться к СУБД MySQL и работать с ней с помощью Python
Из этой статьи вы узнаете, как подключиться к MySQL с помощью Python и выполнить основные команды для работы с данными в таблице: установка необходимых библиотек, подключение к базе данных, создание и удаление таблицы, добавление, извлечение и удаление данных из таблицы.
🔗 Основной сайт
🔗 Зеркало
Из этой статьи вы узнаете, как подключиться к MySQL с помощью Python и выполнить основные команды для работы с данными в таблице: установка необходимых библиотек, подключение к базе данных, создание и удаление таблицы, добавление, извлечение и удаление данных из таблицы.
🔗 Основной сайт
🔗 Зеркало
👍10❤9🤯4
Синхронизация или асинхронность? Раскрывая тайны сигналов Django
https://www.mattlayman.com/blog/2023/django-signals-async/
https://www.mattlayman.com/blog/2023/django-signals-async/
Matt Layman
Sync or Async? Unpacking the Mysteries of Django Signals
Django signals provide a powerful way to trigger actions when specific events occur, but are they asynchronous or synchronous? In this article, we'll explore the answer to this question and discuss the pros and cons of using Django signals in your web applications.
👍8❤5🔥1
Особенности производительности PyTorch и их взаимодействие.
https://paulbridger.com/posts/pytorch-tuning-tips/
https://paulbridger.com/posts/pytorch-tuning-tips/
Paulbridger
PyTorch Performance Features and How They Interact
PyTorch in 2023 is a complex beast, with many great performance features hidden away. Simple top-N lists are weak content, so I’ve empirically tested the most important PyTorch tuning techniques and settings in all combinations. I’ve benchmarked inference…
👍8❤5