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

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

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

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

Реклама на бирже - https://telega.in/c/Python_per_month
加入频道
Фильтрация значений False

Этот пример используется для устранения всех ложных значений из списка, например false, 0, None, " ".
Разбор веб-страниц

Разбор веб-страниц (scraping) нужен для многих целей: от борьбы с сервисами, которые не предоставляют API, до создания поисковых систем.

Для демонстрации мы извлечем заголовки новостей с главной страницы журнала. C помощью библиотеки requests и парсера HTML BeautifulSoup мы можем сделать это всего в несколько строк.

Установим библиотеки: pip3 install requests beautifulsoup4. Теперь откроем xakep.ru в отладчике браузера и увидим, что заголовки новостей находятся в тэгах <h3 class="entry-title">, но не напрямую, а во вложенных <a> и <span>. К счастью для нас, BeautifulSoup поддерживает селекторы CSS3, а в ее стандарте tag1 tag2 как раз означает «<tag2> вложенный в <tag1>. То есть, наш селектор для заголовков новостей будет h3.entry-title a span.

Сохрани в файл вроде xakep-headings.py и выполни python3 xakep-headings.py или просто скопируй в интерпретатор, и ты увидишь все свежие новости.
1
Веб-приложения

На Python есть большие фреймворки MVC, такие как весьма популярный Django. Но есть и легковесные библиотеки, с которыми можно за пару строк кода превратить любую функцию в веб-сервис.

Один из самых популярных микрофреймворков — Flask. Для демонстрации напишем сервис, который в ответ на запрос /add/x/y выдает сумму чисел x и y.

Установим Flask командой pip3 install flask и сохраним код с картинки в файл myapp.ру.

Теперь можно запустить его командой env FLASK_APP=myapp.ру flask run.
$ curl http://localhost:5000/add/3/2
5
Создание словаря из набора ключей

Для создания словаря из известного набора ключей и одинаковых значений часто используют генераторы словарей (dict comprehensions).

Однако класс dict имеет удобный метод fromkeys, который был создан специально для таких случаев.
Приветствую всех, на связи админ! Какой контент вы бы хотели видеть на канале больше всего? Какие темы вам интересны?
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