🐍 Самоучитель по Python для начинающих. Часть 19: Основы ООП – абстракция и полиморфизм
Расскажем, для чего полиморфизм и абстракция используются в программировании, и как они взаимодействуют с остальными фундаментальными концепциями ООП. В конце статьи – решение 10 задач, связанных с абстрактными и полиморфными классами.
🔗 Основной сайт
🔗 Зеркало
Расскажем, для чего полиморфизм и абстракция используются в программировании, и как они взаимодействуют с остальными фундаментальными концепциями ООП. В конце статьи – решение 10 задач, связанных с абстрактными и полиморфными классами.
🔗 Основной сайт
🔗 Зеркало
📈 Повышение цен с 28 апреля на 4 курса!
Если вы планировали покупку курса, рекомендуем сейчас оставить заявку и задать все оставшиеся вопросы менеджеру, чтобы успеть оплатить обучение до повышения цены.
Старая цена будет действовать до 28 апреля включительно — и при оплате целиком, и в рассрочку.
🔹Математика для Data Science
24 990 руб. → 39 990 руб.
🔹Алгоритмы и структуры данных
19 990 руб. → 35 980 руб.
🔹Основы программирования на Python
9 990 руб. → 19 980 руб.
🔹Frontend Basic: принцип работы современного веба
29 990 руб. → 39 990 руб.
Главное про обучение у нас
1. Лучший преподавательский состав. К примеру, высшую математику вам будут преподавать доценты ВМК МГУ;
2. Бессрочный доступ ко всем материалам. Вы сможете проходить обучение в своем темпе;
3. Поддержка преподавателей в чате. Вам всегда помогут разобраться в сложной теме и ответят на любые вопросы;
4. Мы возвращаем деньги, если в течение 7 дней вам не понравилось обучение.
👉Оставить заявку на консультацию можно здесь – https://proglib.io/w/639f76cc
Если вы планировали покупку курса, рекомендуем сейчас оставить заявку и задать все оставшиеся вопросы менеджеру, чтобы успеть оплатить обучение до повышения цены.
Старая цена будет действовать до 28 апреля включительно — и при оплате целиком, и в рассрочку.
🔹Математика для Data Science
24 990 руб. → 39 990 руб.
🔹Алгоритмы и структуры данных
19 990 руб. → 35 980 руб.
🔹Основы программирования на Python
9 990 руб. → 19 980 руб.
🔹Frontend Basic: принцип работы современного веба
29 990 руб. → 39 990 руб.
Главное про обучение у нас
1. Лучший преподавательский состав. К примеру, высшую математику вам будут преподавать доценты ВМК МГУ;
2. Бессрочный доступ ко всем материалам. Вы сможете проходить обучение в своем темпе;
3. Поддержка преподавателей в чате. Вам всегда помогут разобраться в сложной теме и ответят на любые вопросы;
4. Мы возвращаем деньги, если в течение 7 дней вам не понравилось обучение.
👉Оставить заявку на консультацию можно здесь – https://proglib.io/w/639f76cc
#вопросы_с_собеседований
Что такое wheel и eggs в Python? Какая между ними разница?
Python wheel - Это стандартный формат установки дистрибутивов Python, который содержит все файлы и метаданные, необходимые для установки. Файл WHL также содержит информацию о версиях и платформах Python, поддерживаемых этим файлом. Расширение файла wheel - .whl
Python egg - Это сжатый архив ZIP, содержащий исходные файлы приложения Python вместе с метаинформацией о дистрибутиве. Расширение файла egg - .egg
Основная разница заключается в том, что wheel предоставляет более простой и надежный способ установки пакетов. В отличие от eggs, он не требует установки дополнительных зависимостей и обеспечивает более быстрое время установки. Кроме того, wheel поддерживает все платформы, на которых может работать Python.
Что такое wheel и eggs в Python? Какая между ними разница?
Python wheel - Это стандартный формат установки дистрибутивов Python, который содержит все файлы и метаданные, необходимые для установки. Файл WHL также содержит информацию о версиях и платформах Python, поддерживаемых этим файлом. Расширение файла wheel - .whl
Python egg - Это сжатый архив ZIP, содержащий исходные файлы приложения Python вместе с метаинформацией о дистрибутиве. Расширение файла egg - .egg
Основная разница заключается в том, что wheel предоставляет более простой и надежный способ установки пакетов. В отличие от eggs, он не требует установки дополнительных зависимостей и обеспечивает более быстрое время установки. Кроме того, wheel поддерживает все платформы, на которых может работать Python.
🎉 Кино, игры и алгоритмы: чем заняться на майских праздниках
Отложите все дела и забудьте о рутине, ведь майские праздники уже на пороге! Если вы не знаете, как провести эти дни с максимальным удовольствием, то мы подготовили для вас несколько вариантов: киномарафон, компьютерные игры и захватывающий мир алгоритмов.
🔗 Основной сайт
🔗 Зеркало
Отложите все дела и забудьте о рутине, ведь майские праздники уже на пороге! Если вы не знаете, как провести эти дни с максимальным удовольствием, то мы подготовили для вас несколько вариантов: киномарафон, компьютерные игры и захватывающий мир алгоритмов.
🔗 Основной сайт
🔗 Зеркало
Пакеты Python: учебник для специалистов по работе с данными.
https://dagster.io/blog/python-packages-primer-1
https://dagster.io/blog/python-packages-primer-1
dagster.io
Python Packages: a Primer for Data People (part 1 of 2) | Dagster Blog
The foundation of a solid Python project is mastering modules, packages and imports.
Назад в будущее: практическое руководство по путешествию во времени с Python
В Python есть несколько встроенных библиотек для работы со временем и интервалами времени: time, datatime, calendar, timeit. Но когда какой модуль использовать? Рассмотрим на примерах.
Смотреть статью
В Python есть несколько встроенных библиотек для работы со временем и интервалами времени: time, datatime, calendar, timeit. Но когда какой модуль использовать? Рассмотрим на примерах.
Смотреть статью
Библиотека программиста
Назад в будущее: практическое руководство по путешествию во времени с Python
В Python есть несколько встроенных библиотек для работы со временем и интервалами времени: time, datetime, calendar, timeit. Но когда какой модуль использовать? Рассмотрим на примерах.
Инкремент с помощью __pos__
В Python нет операции инкремента
При применении унарного плюса у объекта вызывается магический метод
Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода
В Python нет операции инкремента
++
как в си-подобных языках, поэтому используется x += 1
. Однако запись ++x
является валидным кодом (но не x++
), так как это просто два унарных оператора сложения.При применении унарного плюса у объекта вызывается магический метод
__pos__
, то есть запись ++x
можно понять как x.__pos__().__pos__()
. Зная это, можно реализовать класс, который будет представлять число и поддерживать поведение инкремента.Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода
__pos__
. Если реализовать все остальные необходимые магические методы, то может получится полноценный класс числа, но в продакшене такие приколы лучше не писать.Сортировка вставками (объяснение алгоритма)
Как и сортировка выборкой, этот алгоритм сегментирует список на две части: отсортированную и неотсортированную. Алгоритм перебирает второй сегмент и вставляет текущий элемент в правильную позицию первого сегмента.
Предполагается, что первый элемент списка отсортирован. На каждом шаге переходим к следующему элементу, обозначим его х. Если х больше прошлого элемента, оставляем x на своём месте. Если x меньше прошлого элемента, копируем прошлый элемент на вторую позицию, а х устанавливаем на его место.
Переходя к другим элементам несортированного сегмента, перемещаем более крупные элементы в отсортированном сегменте вверх по списку, пока не встретим элемент меньше x или не дойдём до конца списка. В первом случае x помещается на правильную позицию.
Время сортировки вставками в среднем равно O(n²), где n — количество элементов списка.
Как и сортировка выборкой, этот алгоритм сегментирует список на две части: отсортированную и неотсортированную. Алгоритм перебирает второй сегмент и вставляет текущий элемент в правильную позицию первого сегмента.
Предполагается, что первый элемент списка отсортирован. На каждом шаге переходим к следующему элементу, обозначим его х. Если х больше прошлого элемента, оставляем x на своём месте. Если x меньше прошлого элемента, копируем прошлый элемент на вторую позицию, а х устанавливаем на его место.
Переходя к другим элементам несортированного сегмента, перемещаем более крупные элементы в отсортированном сегменте вверх по списку, пока не встретим элемент меньше x или не дойдём до конца списка. В первом случае x помещается на правильную позицию.
Время сортировки вставками в среднем равно O(n²), где n — количество элементов списка.
🐍 Самоучитель по Python для начинающих. Часть 20: Графический интерфейс на Tkinter
Расскажем о преимуществах и недостатках Tkinter, изучим основы создания GUI и разберемся в особенностях компоновки виджетов с помощью pack(), place() и grid(). В конце статьи – 10 практических заданий по разработке GUI для Python-программ.
🔗 Основной сайт
🔗 Зеркало
Расскажем о преимуществах и недостатках Tkinter, изучим основы создания GUI и разберемся в особенностях компоновки виджетов с помощью pack(), place() и grid(). В конце статьи – 10 практических заданий по разработке GUI для Python-программ.
🔗 Основной сайт
🔗 Зеркало
Ускоряем Python в сто раз при помощи менее чем ста строк на Rust.
https://habr.com/ru/companies/ruvds/articles/732530/
https://habr.com/ru/companies/ruvds/articles/732530/
Хабр
Ускоряем Python в сто раз при помощи менее чем ста строк на Rust
Однажды на работе у нас возникла проблема с производительностью одной из наших основных Python-библиотек. Эта библиотека формирует фундамент нашего конвейера 3D-обработки. Это довольно большая и...
О разнице между лямбдами и обычными функциями и о имплементации лямбд в некторых языках программирования.
https://habr.com/ru/articles/732434/
https://habr.com/ru/articles/732434/
Хабр
О разнице между лямбдами и обычными функциями и о имплементации лямбд в некторых языках программирования
Цель настоящей статьи - изучить лямбда функции: чем они отличаются от обычных функций и изучить, как они реализованы в С++, Python 3 и Java. На протяжении этой статьи я буду использовать godbolt.org ,...
🧒👾Тест-игра на выживание: как джуну протянуть первую рабочую неделю и не потерять работу
Первая неделя на новой работе – это всегда стресс для разработчика. В голове тысяча мыслей, давление зашкаливает, и сердце стучит без остановки. Знаете ли вы, как в такой ситуации не перегореть на старте? Если да, тогда вы легко пройдете нашу мини-игру на выживание про адаптацию джуна в незнакомых условиях. Итак, представьте: желанный оффер уже получен, вас приняли в компанию вашей мечты и сегодня первый рабочий день.
🔗 Основной сайт
🔗 Зеркало
Первая неделя на новой работе – это всегда стресс для разработчика. В голове тысяча мыслей, давление зашкаливает, и сердце стучит без остановки. Знаете ли вы, как в такой ситуации не перегореть на старте? Если да, тогда вы легко пройдете нашу мини-игру на выживание про адаптацию джуна в незнакомых условиях. Итак, представьте: желанный оффер уже получен, вас приняли в компанию вашей мечты и сегодня первый рабочий день.
🔗 Основной сайт
🔗 Зеркало
PySpark для аналитика. Как правильно просить ресурсы и как понять, сколько нужно брать
https://habr.com/ru/companies/avito/articles/732870/
https://habr.com/ru/companies/avito/articles/732870/
Хабр
PySpark для аналитика. Как правильно просить ресурсы и как понять, сколько нужно брать
Привет! Меня зовут Александр Ледовский. Я тимлид команды аналитики и DS, мы строим рекламные аукционы в Авито. Для работы с поисковыми логами мы пользуемся Apache Spark. Я расскажу о моём опыте работы...