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

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

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

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

Реклама на бирже - https://telega.in/c/Python_per_month
加入频道
Возврат нескольких значений из функции

Знаете ли вы, что можно осуществлять возврат нескольких значений из функции? Вот как это сделать. Ознакомьтесь с приведенным выше примером кода.
Распаковывание последовательностей при неизвестном числе элементов

Для указанного в подзаголовке случая в Python 3 есть оператор звездочки – расширенная операция распаковывания последовательности. Переменной со звездочкой присваивается часть списка, содержащая все неприсвоенные элементы, соответствующие этой позиции.
Работа с ip адресами

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

Одним из вариантов его использования является генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация).
Вычисление выражений Python

Вы наверняка знакомы с eval, но знаете ли вы о literal_eval? Вряд ли. Для безопасного исполнения выражений, содержащих исключительно литералы, вы можете делать так.
Нахождение палиндрома

Возможно, вы уже сталкивались с этой задачей. Но думали ли вы, что ее можно решить всего в одну строку кода?

P.S. Палиндром - это слово или текст, одинаково читающиеся в обоих направлениях.
Прогресс выполнения программы

Индикаторы прогресса добавляют наглядности в скриптах, которые исполняют какие-то функции, требующие времени для выполнения. Модуль tqdm является простым и лаконичным вариантом.

Привычный range можно заменить на trange для визуализации прогресса. А для итерации по какой-либо последовательности достаточно просто передать её в функцию tqdm. Также модуль хорошо себя зарекомендовал и в Jupyter Notebook.
Модуль geopy

Программистам может быть сложно ориентироваться в географии. Однако модуль geopy всё упрощает:

$ pip install geopy

Он работает путём абстрагирования API разных сервисов геокодирования. Этот модуль даёт возможность узнать полный адрес места, его долготу и широту и даже высоту.

Также в нём есть полезный класс Distance. Он высчитывает расстояние между двумя местами в удобной единице измерения.
Превращаем текст в речь

На Python есть классная библиотека gTTS (Google Text-to-Speech), которая взаимодействует с Google Translate's text-to-speech API и позволяет делать из текста аудиофайлы. Пакет, как всегда, устанавливается через pip.

При создании экземпляра класса gTTS мы передаем исходный текст первым аргументом. Также можно передать опциональный аргумент, отвечающий за язык, который по умолчанию является английским.

Сохранить полученный результат можно с помощью метода save, в который передается название файла.
Автоматическая отправка сообщений в WhatsApp

Чтобы использовать этот модуль Python для автоматической отправки сообщений в WhatsApp в установленное время, нам нужен браузер Chrome, и вы должны войти в свой WhatsApp на веб-сайте web.whatsapp.com.

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

Установка данного модуля - pip install pywhatkit(также возможно вам понадобится установить модуль flask - pip install flask.

Не забудьте отправить своим друзьям тысячи случайных сообщений в WhatsApp!
👍1
Выключение компьютера

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

Обращение к несуществующему ключу словаря вызывает исключение. Избежать этого можно, вызывая метод get. В указанном случае метод выдает None (по умолчанию) или заданное значение аргумента.
uuid

Стандартный модуль uuid — быстрый и простой способ сгенерировать UUID (universally unique identifier, глобально уникальный идентификатор).

Так мы создаём случайное 128-битное число, которое почти наверняка будет уникальным.

Существует более 2¹²² возможных UUID. Это более 5 ундециллионов или 5,000,000,000,000,000,000,000,000,000,000,000,000.

Вероятность нахождения дубликатов в заданном наборе крайне мала. Даже при наличии триллиона UUID вероятность того, что среди них есть дубликат, гораздо меньше, чем один к миллиарду.

Вполне недурно для двух строк кода.
Веб-парсинг

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

Вот некоторые популярные библиотеки для парсинга:
Beautiful Soup
Scrapy

В нашем примере мы получаем значения ведущих валют мира по сравнению с долларом США

Давайте используем парсинг для решения этой задачи.
Получение индекса максимального элемента в списке

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

Если есть два или более элементов с максимальным значением, данный код возвращает индекс последнего.
Расчет времени выполнения

Этот простейший “трюк” поможет рассчитать время, необходимое для выполнения программы. Используя time-модуль, вы можете точно узнать, сколько времени требуется программе для выполнения кода.
Метод str.title()

Возвращает копию строки str, в которой у каждого слова в строке, первый символ имеет верхний регистр, а остальные символы слова переводятся в нижний регистр. Другими словами, метод вернет копию строки, в которой все слова начинаются с заглавной буквы.
**kwargs

Когда изучаешь любой язык, на пути встречается множество краеугольных камней. В случае с Python понимание таинственного синтаксиса **kwargs можно считать одним из них.

Две звёздочки впереди объекта словаря дают возможность передавать в функцию содержимое этого словаря как именованные аргументы.

Ключи словаря — это имена аргументов, а значения передаются в функцию. Вам даже не обязательно называть его kwargs.

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

Также это может пригодиться при написании функций-обёрток, которые передают все аргументы другой функции.
👍1
Функция shorten()

Функция shorten() модуля textwrap усекает заданный текст, чтобы он поместился в заданную ширину width.

Сначала все пробелы заменяются одиночными пробелами. Если результат соответствует ширине, он возвращается. В противном случае с конца отбрасывается слова, чтобы оставшийся текст плюс заполнитель placeholder (по умолчанию [...]) поместились в указанную ширину width.
Функция multimode()

Функция multimode() модуля statistics возвращает список наиболее часто встречающихся значений элементов в последовательности data в том порядке, в котором они были обнаружены.

Аргумент data может быть последовательностью или итерацией.

Функция statistics.multimode() вернет более одного результата, если в последовательности есть несколько элементов с одинаковым максимальным числом повторений или пустой список, если данные data пусты.
👍1
Query JSON

JMESpath – это язык запросов для JSON, который позволяет получать необходимые данные из документа или словаря JSON. Библиотека доступна как для Python, так и для других ЯП, что расширяет ее возможности.

Вот несколько примеров кода для общего представления.
Валидные значения словаря

В словарь можно поместить что угодно – вы не ограничены числами или строками. Можете поместить списки внутрь словаря и получить доступ к вложенным значениям.