Just Python
11.2K subscribers
3.65K photos
11 videos
3.65K links
🐍Простое изучение Python.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/justpython_it

РКН: clck.ru/3MnbSc
Download Telegram
Count

'abc'.count('') == 4. Вот приблизительная реализация count метода, которая сделала бы вещи более понятными.

Такое поведение обусловлено сопоставлением пустой подстроки ('') с фрагментами длины 0 в исходной строке.

#theory // Just Python
generator expressions

Попробуем использовать генераторные выражения (для получения среза будем использовать функцию islice из itertools, которая возвращает итератор по срезу)

#theory // Just Python
generator functions

Если предикатов фильтрации или обработчиков элементов списка много, то удобнее использовать генераторы. Они могут не дать прироста скорости, но помогут сэкономить память.

Генераторной фунцией в python называется функция, которая ведет себя как итератор. Для определения генераторной функции нужно использовать ключевое слово yield

#theory // Just Python
Оператор walrus (:=)

В этом примере мы используем оператор walrus (:=) для одновременного присваивания значения переменной line и проверки условия внутри цикла while. Это позволяет нам сократить код, объединив операции присваивания и проверки в одну строку.

#theory // Just Python
Функция partial

В этом примере мы используем функцию partial для создания новых функций double и triple на основе функции multiply, фиксируя аргумент y на значениях 2 и 3 соответственно. Теперь новые функции могут быть вызваны с одним аргументом, в то время как фиксированный аргумент уже задан.

#theory // Just Python
Модуль asyncio

В этом примере мы используем модуль asyncio для создания асинхронной программы. Определяем асинхронную корутину my_coroutine, которая выполняет асинхронную операцию (в данном случае, ожидание 1 секунды). Затем определяем асинхронную функцию main, которая вызывает две корутины одновременно с помощью asyncio.gather. В конце мы используем asyncio.run для запуска основной функции main.

#theory // Just Python
Контекстные менеджеры (with)

В
этом примере мы используем контекстный менеджер with для автоматического открытия и закрытия файла. В блоке with мы читаем содержимое файла и выводим его на экран. После выхода из блока with файл будет автоматически закрыт, независимо от того, произошло исключение или нет.

#theory // Just Python
Декоратор @property

В этом примере мы определяем класс Circle с атрибутом radius и методом area, который вычисляет площадь окружности. Мы добавляем декоратор @property перед методом area, чтобы можно было обращаться к нему как к свойству объекта circle, без явного вызова метода.

#theory // Just Python
Сортировка HTML-элементов по названию

С помощью метода find_all мы можем сортировать все элементы, которые соответствуют некоторым критериям.

#theory // Just Python
Сортировка HTML-элементов по CSS-селектору

С помощью методов select и select_one мы можем использовать некоторые селекторы CSS для сортировки элементов.

#theory // Just Python
Создания декораторов с помощью декоратора @wraps

В этом примере мы используем модуль functools и декоратор @wraps, чтобы создать декоратор my_decorator. Декоратор @wraps применяется к внутренней функции wrapper и копирует метаданные (имя функции, документацию и др.) из декорируемой функции func. Это полезно, чтобы сохранить исходные атрибуты функции и предотвратить их затирание. В примере мы декорируем функцию my_function с помощью @my_decorator и выполняем ее.

#theory // Just Python
Модуль concurrent.futures для параллельного выполнения задач

В этом примере мы используем модуль concurrent.futures для параллельного выполнения функции square над элементами списка numbers. Мы создаем пул потоков с помощью ThreadPoolExecutor и используем метод map для передачи каждого элемента из списка в функцию square. Результаты возвращаются в том порядке, в котором задачи были отправлены. Аналогично, мы можем использовать пул процессов с помощью ProcessPoolExecutor для выполнения задач в отдельных процессах.

#theory // Just Python
метод remove() - помощь в удаление элемента из списка

Списк состоит из строк и целых чисел. Есть повторяющиеся элементы: строка «Mars» и число 12. Задаём отрезок и с помощью метода remove чистим список.

#theory // Just Python
Метод del

Для удаления элемента из списка можно использовать метод del с названием списка после него. Также потребуется передать индекс того элемента, который нужно удалить.

#theory // Just Python
Enum перечисления

Этот класс можно назвать удобным способом инкапсуляции списка констант, чтобы они не были разбросаны по всему коду без структуры.

#theory // Just Python
Как удалить элемент из списка с помощью индекса в Python

Для удаления элемента по индексу используйте pop(). Для этого также подойдет ключевое слово del.

#theory // Just Python
Перебор списка с помощью цикла for

Цикл for один из самых основных элементов в Python. Список и кортеж – повторяемые объекты. Мы можем использовать цикл для перебора их элементов.

#theory // Just Python
Использование reversed()

Функция reversed() позволяет получить обратный порядок элементов в списке.

В этом примере мы используем функцию reversed() для получения списка чисел в обратном порядке.

#theory // Just Python
Аннотации типов (type hints) для улучшения читаемости кода

В этом примере мы используем аннотации типов для функций add и greet. Указываем типы аргументов и возвращаемое значение после двоеточия (:). Такие аннотации улучшают читаемость кода, помогают разработчику понимать ожидаемые типы данных и могут быть использованы средами разработки для статического анализа кода и автодополнения.

#theory // Just Python
Модуль subprocess

В этом примере мы используем модуль subprocess для выполнения внешних команд. Мы используем функцию subprocess.run для выполнения команды и получения результатов ее работы. Метод capture_output=True позволяет перехватить вывод команды, а text=True указывает, что вывод нужно интерпретировать как текст. Метод input позволяет передать входные данные для команды.

#theory // Just Python