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

Ссылка: @Portal_v_IT

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

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

РКН: clck.ru/3MnbSc
Download Telegram
🙃 Что такое словари в Питоне №1

#theory // just python
Длина строки в байтах

#theory // just python
Использование внешних процессов в Python с помощью subprocess

В мире программирования бывают моменты, когда необходимо взаимодействовать с внешними программами из кода на Python. Для этих задач отлично подходит модуль subprocess, который предоставляет удобный способ запуска внешних процессов, передачи данных им и получения результатов выполнения.

Что такое subprocess?

subprocess - это модуль Python, который предоставляет множество возможностей для запуска новых процессов, подключения к существующим процессам, а также обмена данными между вашим кодом и внешними программами.

Пример использования subprocess:

import subprocess

# Простой пример: выполнение команды "ls" в командной строке
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE, text=True)

# Вывод результата выполнения команды
print(result.stdout)


В данном примере мы использовали subprocess.run для выполнения команды "ls -l". Параметр stdout=subprocess.PIPE указывает на перенаправление вывода команды в переменную result.stdout. Параметр text=True гарантирует, что вывод будет в текстовом формате.

Передача данных и получение результата:

import subprocess

# Передача данных в команду и получение результата
input_data = "Hello, subprocess!"
result = subprocess.run(['echo', input_data], stdout=subprocess.PIPE, text=True)

# Вывод результата выполнения команды
print(result.stdout)


В данном примере мы использовали команду echo для вывода переданных данных. subprocess.run позволяет передавать данные в команду через параметр input.

subprocess также предоставляет множество других функций для более сложных сценариев взаимодействия с процессами, таких как запуск процесса в фоновом режиме, обработка ошибок, а также потоковый вывод данных.

#theory // just python
from __future__ import

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

Впрочем, не всё так плохо. Модуль __future__ даёт возможность импортировать функциональность будущих версий Python. Это прямо как путешествие во времени, или магия:

Почему бы не попробовать импортировать фигурные скобки?

#theory // just python
Создавайте видео или редактируйте видео

Модуль MoviePy — замечательный модуль, который поможет вам создавать и редактировать видео. MoviePy имеет множество функций, которые помогут вам программно редактировать видео.

Установка: `pip install moviepy`

#useful // just python
Форматирование многострочного вывода

Если вы хотите, чтобы вывод напоминал табличку с одинаковым отступом, то при использовании F-строк добавьте интерполируемой переменной двоеточие и число, одинаковое для всех print(), например, 10. Это «резервирует» пространство из 10 символов.

Давно гадали как выводу быть приятным и опрятным?

#theory // just python
Почему pprint лучше print

Стандартная функция Python print() делает своё дело. Но если попытаться вывести какой-нибудь большой вложенный объект, результат будет выглядеть не очень приятно.
Здесь на помощь приходит модуль из стандартной библиотеки pprint (pretty print). С его помощью можно выводить объекты со сложной структурой в читабельном виде.

Мастхэв для любого Python-разработчика, работающего с нестандартными структурами данных!

#theory // just python
Резервирование символов

С помощью операторов > / < / ^ вы можете добавлять выходному значению символы, к примеру, облегчающие поиск среди других выходных значений.
Как видно в сниппете выше, < добавит символы после, > – до, а ^ – окружит с двух сторон.

Вперёд! Создавать резервы и окружать вывод символами!

#theory // just python
Фильтрация списка без цикла

Здесь пригодится модуль itertools. Если есть два списка с именами и идентификаторами, то вы можете выбрать из списка leaders только те, где значения selector равны единице.

А вы знаете ещё способы фильтрации без цикла?

#theory // just python
Проверка на анаграммность

Проверить, являются ли строки анаграммами (например, в результате случайной перестановки букв) поможет класс Counter модуля collections.

#theory // Just Python
Транспонирование двумерного массива данных

Чтобы поменять местами строки и столбцы матрицы, созданной с помощью встроенных типов данных, воспользуйтесь функцией zip.
Если вы регулярно сталкиваетесь с подобными задачами, вместо таких трюков в Python принято использовать библиотеку NumPy.

#theory // Just Python
Удаление дубликатов в спискеУдаление дубликатов в спискев

Среди регулярно используемых трюков в Python – это преобразование списка во множество и обратно в список для удаления повторяющихся элементов списка. Но множества – это неупорядоченные последовательности. Часто стоит задача сохранить порядок следования элементов. Для этого удобно воспользоваться типом данных OrderedDict из модуля collections.

#theory // just python
Отладка регулярных выражений

Регулярные выражения Python – мощный и полезный инструмент, но отлаживать их – то еще удовольствие. Оказывается, любую регулярку можно визуализировать в виде дерева синтаксического анализа. Эта возможность языка пока экспериментальная, за нее отвечает флаг re.DEBUG в методе re.compile.

Посмотрим на регулярное выражение для поиска тегов font. С ним что-то не так.
Теперь ясно, что именно. В закрывающем дескрипторе не экранированы квадратные скобки, поэтому он воспринимается не как тег, а как группа символов.

#theory // just python
Выражения-генераторы

В Python есть очень удобные генераторы коллекций (списков, множеств, словарей), которые позволяют легко и быстро создавать отфильтрованные коллекции значений. А еще есть выражения-генераторы, которые не загружают коллекцию в память целиком, а выдают лишь один элемент по требованию. В некоторых случаях это позволяет существенно сэкономить расходы памяти. Единственное отличие в синтаксисе – это круглые скобки.

#theory // just python
Распаковка аргументов

Параметры можно передать в функцию в виде списка или словаря и распаковать их автоматически, используя синтаксис * и **.Эта фича языка очень полезна, так как в Python списки, кортежи и словари широко используются в качестве контейнеров.

#theory // just python
Множественное назначение

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

#theory // just python
Извлечение части списка

Извлечение части списка – слайсинг с указанием индексов начального и конечного элементов. Вместо того, чтобы создавать копию my_list, в примере мы напрямую обращаемся к этому объекту. Это рациональное расходование памяти, и на больших объемах данных вы точно оцените эту фичу.

#theory // just python
«Моржовый» оператор

В данном примере := присвоит значение переменной как части выражения, после будет выполнена проверка условия.

#theory // just python
F-строки

F-строки олицетворяет интерполяцию, то есть включение переменных в строковые выводы.

#theory // just python
Правдивость различных объектов

В отличие от некоторых языков программирования, в Python объект считается False, только если он пуст. Это значит, что не нужно проверять длину строки, кортежа или словаря – достаточно проверить его как логическое выражение. Разумеется, 0 – тоже False, а остальные числа – True.

#theory // just python