Python Learning
34.6K subscribers
1.91K photos
8 videos
7 files
913 links
№ 4974297878

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

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

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

Реклама на бирже - https://telega.in/c/Python_per_month
加入频道
Приветствую всех, на связи админ! Какой контент вы бы хотели видеть на канале больше всего? Какие темы вам интересны?
P.S. У меня сегодня день рождения 🎉
👍1🎉1
Пузырьковая сортировка

Этот простой алгоритм выполняет итерации по списку, сравнивая элементы попарно и меняя их местами, пока более крупные элементы не «всплывут» в начало списка, а более мелкие не останутся на «дне».

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

При достижении конца списка процесс повторяется заново для каждого элемента. Это крайне неэффективно, если в массиве нужно сделать, например, только один обмен. Алгоритм повторяется n² раз, даже если список уже отсортирован.

Для оптимизации алгоритма нужно знать, когда его остановить, то есть когда список отсортирован.

Чтобы остановить алгоритм по окончании сортировки, нужно ввести переменную-флаг. Когда значения меняются местами, устанавливаем флаг в значение True, чтобы повторить процесс сортировки. Если перестановок не произошло, флаг остаётся False и алгоритм останавливается.
Реализация

Алгоритм работает в цикле while и прерывается, когда элементы ни разу не меняются местами. Вначале присваиваем swapped значение True, чтобы алгоритм запустился хотя бы один раз.

Время сортировки
Если взять самый худший случай (изначально список отсортирован по убыванию), затраты времени будут равны O(n²), где n — количество элементов списка.
Библиотека PyAutoGUI

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

Установка библиотеки - pip install PyAutoGUI

В этом посте мы познакомимся с функцией position(), которая сообщает нам текущее положение мыши на экране.
Функции onScreen() и size()

Продолжаем знакомиться с библиотекой PyAutoGUI.

Функция onScreen() сообщает нам, существует ли на экране точка с координатами x и y.
Функция size() находит высоту и ширину (разрешение) экрана.
Функция scroll()

Продолжаем знакомиться с библиотекой PyAutoGUI.

Еще одна функция мыши, которую мы рассмотрим, – это прокрутка. Как и ожидалось, у него есть два варианта: прокрутка вверх и прокрутка вниз.

Для прокрутки вверх укажите положительное значение для параметра amount_to_scroll, а для прокрутки вниз укажите отрицательное значение.
Запись текста на изображении OpenCV в Python

Чтобы написать текст на изображении с помощью библиотеки OpenCV Python, используйте метод putText(). Использование функции показано в примере выше.

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

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

В этом примере мы будем читать изображения, находящиеся в папке, одно за другим. Затем мы будем использовать Video Writer для записи каждого изображения в цикле в выходной файл видео.
Запись видео с камеры

В следующем примере мы передали индекс, как 0 классу VideoCapture. Это вызовет основную и единственную камеру, подключенную к этому компьютеру, то есть веб-камеру.
Какая из перечисленных инструкций выполнится быстрее всего, если n = 10**6?
Anonymous Quiz
17%
a = list(i for i in range(n))
29%
a = [i for i in range(n)]
41%
a = (i for i in range(n))
13%
a = {i for i in range(n)}
👍3
Изменение размера изображения

В следующем примере мы увидим, как можно изменить размер изображения выше с помощью cv2.resize(), сохранив при этом соотношение сторон. Мы изменим размер изображения до 50% от его фактической формы, т.е. уменьшим его высоту до 50% от оригинала и ширину до 50% от оригинала.

Ознакомиться подробнее можно здесь.
Создание и чтение изображения

В этом примере мы создадим новое изображение в режиме RGB с размером (400, 300). Мы не будем указывать цвет, поэтому методы new() считают значение цвета по умолчанию 0 – для каналов RGB будет черным цветом.

Ознакомиться подробнее можно здесь.
1
Что выведет код сверху?
Anonymous Quiz
18%
Python
35%
Learning
8%
P
10%
L
20%
Python Learning
9%
Error
😢1🏆1
Поворачиваем изображение на 45 градусов

В следующем примере мы повернем изображение на 45 градусов против часовой стрелки.

Ознакомиться подробнее можно здесь.
👍2
Удаление страниц PDF-файла

Библиотека PyMuPDF включает в себя довольно много сложных методов, которые упрощают удаление страниц из файла PDF. Он позволяет указать либо одну страницу (используя метод deletePage()), либо диапазон номеров страниц (используя метод deletePageRange()), либо список с номерами страниц (используя метод select()).

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

Наверняка вам не раз приходилось писать методы для какой-то специфической работы с вебом. Но я вас огорчу – вы делали это зря. Ведь уже есть wget. Рекурсивно скачать сайт? Забрать со страницы все изображения? Для wget это не проблема.
Вставка страниц в PDF-файл

Библиотека PyMuPDF также позволяет вставлять страницы. Он предоставляет методы newPage() для добавления полностью пустых страниц и insertPage() для добавления существующей страницы. В следующем примере показано, как добавить страницу из другого документа PDF в конец другого.
Преобразование ключей словаря в список

В следующей программе у нас есть словарь, инициализированный тремя парами ключ:значение. Мы будем использовать метод dict.keys() для получения объекта dict_keys. Мы передаем dict.keys() в качестве аргумента конструктору list(), который возвращает список ключей.