Python Learning
33.4K subscribers
1.95K photos
8 videos
7 files
954 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
Download Telegram
Ruff

Ruff — это новый, быстроразвивающийся линтер Python кода, призванный заменить flake8 и isort.

Основным преимуществом Ruff является его скорость. Ruff в 10-100 раз быстрее аналогов (Линтер написан на Rust). В сравнении с flake8, автор заявляет о практически полном совпадении с набором правил инструмента и нативной реализацией популярных плагинов (flake8-bugbear и т.д.). Также Ruff совместим с Black «из коробки».

Ruff может форматировать код. Например, он автоматически удаляет неиспользуемые импорты. Что касается сортировки и группировки строк импорта, то она практически идентична isort.

Документация лежит здесь.

#для_продвинутых
👍22
👍6
Что выведет данный код?
Anonymous Quiz
34%
True
42%
False
23%
Ошибку
🤔18👍7🥰2🎉1
#Вопросы_с_собеседования
Реализуйте алгоритм сортировки слиянием (Merge Sort) на Python. Напишите код и объясните, как работает этот алгоритм. Расскажите о его сложности и возможных оптимизациях.


Объяснение:
Алгоритм сортировки слиянием (Merge Sort) использует стратегию «разделяй и властвуй». Он состоит из двух основных шагов:

Разделение (Divide): Массив разделяется на две равные (при четном числе элементов) или почти равные (при нечетном) части. Этот процесс рекурсивно выполняется для каждой из подпоследовательностей.
Слияние (Merge): Отсортированные подпоследовательности сливаются обратно в один отсортированный массив.

Сложность:
Временная сложность: O(n log n) в худшем, лучшем и среднем случаях.
Пространственная сложность: O(n).

Оптимизации:
— При реализации можно использовать вставочную сортировку для маленьких подмассивов, так как у нее меньшая константа в асимптотике.
— Если массив уже отсортирован, можно добавить проверку и пропустить шаг сортировки.
— Вместо копирования подмассивов при каждом рекурсивном вызове можно использовать вспомогательный массив для слияния, что уменьшит использование памяти.
👍15😁1
Метод swapcase()

Метод swapcase() в Python является встроенным методом строк (str), который создает новую строку, меняя регистр каждой буквы в исходной строке. Если буква была в верхнем регистре, она будет преобразована в нижний регистр, и наоборот.

Результатом будет строка 'hELLO, wORLD!'.

#для_начинающих
👍25❤‍🔥3🎉1
Функция compress

Функция compress из itertools используется для фильтрации элементов входной последовательности на основе соответствующих элементов булевой последовательности.

Код с картинки создает новый список, включающий только элементы data, для которых соответствующее значение в selectors является True. В данном случае результат будет [1, 3, 5].

#для_начинающих
👍24❤‍🔥1🔥1🎉1
Метод math.perm()

Метод math.perm() в Python возвращает количество способов выбрать k элементов из n элементов с порядком и без повторения.

Синтаксис:
math.perm(n, k)


Где:
n: Количество элементов из которых выбираются k элементов.
k: Количество элементов, которые выбираются.

В первом примере метод возвращает количество способов выбрать 3 элемента из 5 элементов. В результате получается 60 способов.
Во втором примере метод возвращает количество способов выбрать 5 элементов из 10 элементов. В результате получается 252 способа.

#для_начинающих
👍14❤‍🔥3🎉2
Сцепление исключений

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

В примере на картинке, если возникает ZeroDivisionError, мы попадаем в блок except, а затем выполняем вложенный код, который вызывает ValueError. С помощью ключевого слова from мы указываем, что исключение ValueError является следствием (частью) исключения ZeroDivisionError. Таким образом, информация об исключении ZeroDivisionError сохраняется.

#для_продвинутых
👍19
Функция sample()

Функция sample() модуля random в Python возвращает случайную выборку элементов из последовательности. В первом параметре функции указываем последовательность, во втором параметре — количество элементов, которые мы хотим выбрать случайным образом.

#для_начинающих
👍35
Функция tell()

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

Возвращаемое значение: целое число, указывающее положение указателя в байтах от начала потока.
Аргументы: tell() не принимает никаких аргументов.

#для_начинающих
👍23
PyBrain

PyBrain — это библиотека машинного обучения, которая предоставляет широкий набор алгоритмов и инструментов для обучения нейросетей и других задач машинного обучения.

PyBrain имеет ряд преимуществ, которые делают его привлекательным для разработчиков машинного обучения:
— Простота использования: PyBrain имеет простой и понятный синтаксис, который делает его удобным для изучения.
— Модульность: PyBrain является модульной библиотекой, что позволяет разработчикам создавать собственные алгоритмы и инструменты.
— Производительность: PyBrain написан на Python, который является высокопроизводительным языком.

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

#для_пролвинутых
👍21🤔2❤‍🔥1
Fugue

Fugue — это фреймворк Python для создания рабочих процессов Google Cloud Composer. Он предоставляет набор инструментов и библиотек, которые упрощают разработку, развертывание и управление рабочими процессами в Google Cloud.

Чтобы использовать Fugue в Python, необходимо сначала установить его с помощью pip:

pip install fuga


После установки можно начать создавать рабочие процессы. Рабочие процессы в Fugue представляют собой набор задач, которые выполняются последовательно или параллельно. Задачи могут быть простыми, такими как запуск команды или загрузка данных, или сложными, такими как выполнение машинного обучения или анализа данных.

Код на картинке создает задачу, которая запускает команду echo.

#для_продвинутых
👍11
Voluptuous

Voluptuous — это библиотека Python для проверки данных. Она позволяет создавать схемы данных, которые определяют допустимые значения для различных полей данных. Voluptuous можно использовать для проверки данных, полученных от пользователей, из API или из других источников.

Для использования Voluptuous необходимо сначала импортировать библиотеку:

import voluptuous as v


#для_продвинутых
👍17
Фильтр нецензурной лексики за 5 минут

Смотреть статью
👍9❤‍🔥1🎉1
👍3
Какую ошибку выведет этот код?
Anonymous Quiz
27%
Никакую
15%
SyntaxError
29%
TypeError
13%
Exception
17%
Узнать ответ
🤔17👍7🎉2
Six

Библиотека Six — это мощная библиотека, которая предназначена для сглаживания различий между двумя версиями Python: 2 и 3. Она предоставляет утилиты для обеспечения совместимости кода, который работает на обеих версиях Python без изменений. Six состоит всего из одного файла Python, поэтому его легко скопировать в проект.

В этом примере функция dispatch_types использует константы типов из библиотеки Six для проверки типа переданного значения и вызова соответствующей функции обработки.
👍8🔥2
Виртуальная клавиатура на Python+OpenCV

Идея заключается в создании виртуальной клавиатуры, ее выводе на экран и возможности ее использования.

Смотреть статью
👍29❤‍🔥6🎉1
Очистка элементов в последовательности

Иногда возникает необходимость в удалении ненужных объектов последовательности. Для этого используют itertools, а именно метод compress.

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

Если логическое значение равно True или 1, то элемент остаётся в последовательности, иначе — удаляется из нее.
👍18🔥4