№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy
Бинарный поиск
Бинарный поиск — это эффективный алгоритм поиска элемента в отсортированном массиве. Он работает путем разделения массива пополам и сравнивает искомый элемент с элементом в середине массива. В зависимости от результата сравнения, половина массива, в которой элемент точно не может находиться, исключается из дальнейшего поиска. Этот процесс повторяется, пока не будет найден элемент или пока остается только один элемент в массиве.
В этом примере функция binary_search
принимает отсортированный массив arr
и искомый элемент target
. Она ищет элемент в массиве и возвращает его индекс, если он найден, и -1, если элемент отсутствует. Каждая итерация сужает диапазон поиска путем сравнения среднего элемента с искомым элементом и сдвига границ поиска в соответствии с результатом сравнения.
Введение в машинное обучение с помощью scikit-learn (перевод документации)
Смотреть статью
Построение горизонтальной гистограммы с помощью seaborn
Слева представлен код для построения гистограммы, справа результат работы нашей программы.
Библиотека FeatherFeather
— это библиотека для эффективного чтения и записи таблиц данных в двоичный формат. Она использует формат Apache
Arrow
для сериализации данных, что позволяет быстро читать и записывать данные без потери информации.
В этом примере мы использовали две основные функции библиотеки:
- feather.write_dataframe()
: записывает таблицу данных в файл формата Feather
.
- feather.read_dataframe()
: читает таблицу данных из файла формата Feather
.Feather
позволяет быстро и эффективно обмениваться данными между Python и R, а также обеспечивает быстрое чтение и запись таблиц данных на диск.
Обучите свою первую ML-модель!
✅ Интенсив для начинающих разработчиков ML «Машинное обучение на службе Data Science» от Otus.
Научитесь решать задачи классификации методами ML
Обучите свою первую модель для решение задачи классификации рукописных цифр
👉 Регистрация: https://otus.pw/1kC2/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
@cached_property
: Кешируем результат функции как атрибут
В Python 3.8 в модуле functools появился новый мощный декоратор - @cached_property
. Он может превратить метод класса в свойство, значение которого вычисляется один раз, а затем кэшируется как обычный атрибут на протяжении всего существования экземпляра.
В приведенном выше коде мы оптимизировали метод area через свойство @cached_property
. Таким образом, нет повторных вычислений для circle.area одного и того же неизменного экземпляра.
Управление экспортами
В некоторых языках имеются очень чёткие механизмы экспорта из модулей переменных, методов, интерфейсов. К примеру в Go экспортируются только сущности с именами с большой буквы. В Python другая картина — экспортируется всё. Но только не при использовании атрибута __all__
.
В примере на картинке экспортируется только функция hja. А если оставить атрибут __all__
пустым, при попытке экспорта из модуля ничего не будет экспортировано, но возникнет ошибка AttributeError
.
Подготовка к Новому году – это волнительно и приятно.
Но давайте совместим приятное с полезным.
Например, создадим телеграм-бот для новогодних поздравлений!
18 декабря на вебинаре «Телеграм-бот своими руками» вы узнаете:
- Как устроен телеграм-бот
- Как создать телеграм-бот на сервере Telegram
- Как написать бэкенд для телеграм-бота на базе фреймворка Aiogram
Мастер-класс проведёт Кирилл Панфилов, преподаватель OTUS, классный программист и автор ютуб-канала [dirty-python]
Приглашаем начинающих Python-разработчиков, разработчиков на Jave и других языках, а также всех, кто интересуется разработкой и IT.
Результаты вебинара: функционирующий бот, прокачка навыков программирования на Python, доступ к закрытому сообществу, а ещё – скидка на курсы и полезные материалы.
18 декабря, 19:00 МСК
Записаться на вебинар - https://otus.pw/dvll/?erid=LjN8K7hvn
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Получаем историю браузера 😏
browser-history— это простой, не требующий никаких зависимостей, удобный для разработчиков пакет Python для извлечения (почти) всей истории любого браузера на (почти) любой платформе.
Документация пакета лежит здесь.
Превращаем PDF файл в аудиокнигу
Для выполнения данной задачи нам понадобятся 2 библиотеки: pyttsx3 и PyPDF2.
Первая потребуется для преобразования текста в речь.
Вторая - для работы с PDF-файлами.
Подробнее с данным примером вы можете ознакомиться здесь.
#вопросы_с_собеседований
Что такое поверхностная копия?
Поверхностная копия используется при создании нового типа экземпляра и сохраняет значения, скопированные в новом. Также она используется для копирования ссылочных указателей. Это означает, что когда мы копируем объект в другую переменную, он будет привязан.
✅️ GitHub теперь в Telegram!
Подписывайтесь: @GitHub
Аннотации типов
Python имеет динамическую типизацию, и многие часто ругают за это язык.
Однако в новых версиях добавили поддержку аннотаций типов переменных, полей классов, аргументов функций и возвращаемых значений, что призвано упростить чтение и понимание кода.
Учишь Python, но как дело доходит до собственного кода — всё, кирдык? 😥
На форумах только одно: «Больше практиковаться!» А толку? Ноль понимания и никакой поддержки от профи…
Плавали - знаем)) Поэтому специально для тебя - чат для Python-щиков 🤝
Что получишь?
1️⃣ Сможешь задавать любые вопросы без страха и осуждения и получать ответы за минуты, а не часы поиска в инете
2️⃣ Регулярные плюшки в виде стримов от препода с 15-ти летним опытом
3️⃣ Общение с единомышленниками и заряд мотивации
➡️ А еще, забирай в закрепе БЕСПЛАТНЫЙ вводный курс по Python
Короче, всё для прокачки! Залетай к нам — ссылка на чат (тык)
Узнаем размер файла с помощью Python
C помощью метода os.path модуля os мы можем получить размер любого нашего файла в байтах.
Задача
У вас есть девять цифр: 1, 2, …, 9. Именно в таком порядке. Вы можете вставлять между ними знаки «+», «-» или ничего. У вас будут получаться выражения вида 123+45-6+7+89. Найдите все из них, которые равны 100.
Мне кажется, в таком виде его проще всего и писать и читать и тестировать. Тут у меня три функции: all_combinations — итератор, который выдает все числа для операций (в терминах задачи: вставляет пустые места); all_signs — выдаёт все возможные сочетания знаков + и - заданной длинны (для единообразия, это тоже итератор с рекурсией); perform_operations — выполняет операции.
Тут, конечно, просится решение, избавленное от if-ов и кодирования операций с помощью символов. Но это решение будет более громоздким, о нём можно рассказать, но и писать, и читать его дольше.
PyTorch
PyTorch — это библиотека машинного обучения. Она позволяет создавать нейронные сети и обучать их на графических процессорах, что ускоряет процесс обучения и улучшает точность моделей.
В этом примере мы загружаем датасет MNIST с рукописными цифрами, создаем простую нейронную сеть с двумя полносвязными слоями и функцией активации ReLU
, обучаем ее с помощью стохастического градиентного спуска, а затем тестируем результат на отложенных данных.
При этом мы используем функцию потерь CrossEntropyLoss
, которая подходит для задач классификации, и оптимизатор SGD
.
Использование речевых технологий Яндекса на примере аудиосообщений Telegram или чат-бот для распознавания аудиосообщений
Смотреть статью
Просмотр всех файлов в папке с помощью Python
В этом примере мы указываем путь к папке, которую нам нужно просмотреть, с помощью переменной folder_path
.
Затем мы вызываем функцию os.listdir()
, которая вернет список всех файлов и папок в указанной папке. Мы проходим циклом for
через этот список и выводим на экран имена файлов.
Работаем с датой и временем
С помощью следующего фрагмента кода вы сможете с легкостью узнать год/месяц/день/час/минуту/секунду настоящего времени.
Хотели узнать больше про инженерную команду Selectel?
Спешим познакомить вас с новым проектом ребят!
На этой страничке вы найдете:
— Ключевые ценности, на которые инженеры Selectel опираются в работе
— Подробную информацию о жизни ребят в компании: как устроены процессы и какие технологии используются
— Чем живут технические комьюнити
А также познакомитесь с базой знаний инженеров: докладами и статьями на Хабре!
Скорее переходите и читайте😉
Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzqvmVXKw
Преобразование PNG в PDF
Для начала установим библиотеку img2pdf - pip install img2pdf.
img2pdf— это пакет Python с открытым исходным кодом для преобразования изображений в формат pdf.
Подробнее ознакомиться с библиотекой img2pdf можно здесь.
Как можно объявить несколько присваиваний в одном выражении?
Оба варианта на картинке. В первой строке мы присваиваем переменным a, b, c соответственно значения 3, 4, 5, а во второй строке все переменные получают значение 3.
Передаём содержимое словаря
Две звездочки перед словарём позволяют передать его содержимое в функцию как аргументы. При этом ключи словаря — имена аргументов.
Это полезно при обработке словарей, а также для написания функций-обёрток.
Узнаем отношение доллара к биткоину
С помощью следующего фрагмента кода мы узнаем что в настоящее время 5 тысяч долларов равняется 0.29 биткоина.
forex-python позволяет получать данные о курсе валют в определённое время и конвертировать одну валюту в другую.
Установка пакета - pip install forex-python.
Функция readline()
Функция readline() используется для построчного чтения содержимого файла. Она используется для крупных файлов. С ее помощью можно получать доступ к любой строке в любой момент.
Допустим у нас есть файл test.txt с несколькими строками:
This is line1.
This is line2.
This is line3.
Посмотрим, как функция readline() работает в test.txt.
Проверяем скорость интернета
Speedtest — пакет от создателей того самого сайта для проверки скорости интернета прямо на Python.
У объекта класса Speedtest
методы download()
и upload()
выдают соответственно скорость скачивания и загрузки данных.
Методы отдают результат в байтах, поэтому для наглядности в примере данные переводятся в мегабайты при выводе. Документация, как всегда, по ссылке.
🐍 3 классических паттерна проектирования в Python: синглтон, декоратор и итератор
Паттерны в Python – это шаблоны для решения задач, которые часто встречаются в практике программиста. Они представляют из себя огромный набор инструментов. В этом материале вы познакомитесь с самыми главными из них.
https://proglib.io/p/3-luchshih-patterna-proektirovaniya-v-python-singlton-dekorator-i-iterator-2022-02-03
Наследование
Ключевая механика ООП, позволяющая создать новый класс на основе уже имеющегося. При таком создании класса за основу берутся все атрибуты и методы родительского класса.
В примере на картинке класс Ferrari является дочерним классом Car.
Проверяем отсутствие общих элементов множества и последовательности
Метод sets.isdisjoint() позволяет проверить множество sets на отсутствие общих элементов с последовательностью other. Метод возвращает True, если множество sets не имеет общих элементов с итерируемым объектом other, если имеются общие элементы то вернет False.
Синтаксис:
sets.isdisjoint(other)
Параметры:
other - объект поддерживающий итерацию (кортеж, символ или подстрока).
sets - множество frozenset или set.