Прогресс выполнения программы
Индикаторы прогресса добавляют наглядности в скриптах, которые исполняют какие-то функции, требующие времени для выполнения. Модуль
Привычный
Индикаторы прогресса добавляют наглядности в скриптах, которые исполняют какие-то функции, требующие времени для выполнения. Модуль
tqdm
является простым и лаконичным вариантом.Привычный
range
можно заменить на trange
для визуализации прогресса. А для итерации по какой-либо последовательности достаточно просто передать её в функцию tqdm
. Также модуль хорошо себя зарекомендовал и в Jupyter Notebook.Модуль geopy
Программистам может быть сложно ориентироваться в географии. Однако модуль geopy всё упрощает:
$ pip install geopy
Он работает путём абстрагирования API разных сервисов геокодирования. Этот модуль даёт возможность узнать полный адрес места, его долготу и широту и даже высоту.
Также в нём есть полезный класс Distance. Он высчитывает расстояние между двумя местами в удобной единице измерения.
Программистам может быть сложно ориентироваться в географии. Однако модуль geopy всё упрощает:
$ pip install geopy
Он работает путём абстрагирования API разных сервисов геокодирования. Этот модуль даёт возможность узнать полный адрес места, его долготу и широту и даже высоту.
Также в нём есть полезный класс Distance. Он высчитывает расстояние между двумя местами в удобной единице измерения.
Превращаем текст в речь
На Python есть классная библиотека
При создании экземпляра класса
Сохранить полученный результат можно с помощью метода
На 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!
Чтобы использовать этот модуль Python для автоматической отправки сообщений в WhatsApp в установленное время, нам нужен браузер Chrome, и вы должны войти в свой WhatsApp на веб-сайте web.whatsapp.com.
В приведенном выше коде мы указали номер мобильного телефона, на который мы хотим отправить сообщение, затем сообщение, а затем время, в которое сообщение должно быть отправлено.
Установка данного модуля - pip install pywhatkit(также возможно вам понадобится установить модуль flask - pip install flask.
Не забудьте отправить своим друзьям тысячи случайных сообщений в WhatsApp!
👍1
uuid
Стандартный модуль uuid — быстрый и простой способ сгенерировать UUID (universally unique identifier, глобально уникальный идентификатор).
Так мы создаём случайное 128-битное число, которое почти наверняка будет уникальным.
Существует более 2¹²² возможных UUID. Это более 5 ундециллионов или 5,000,000,000,000,000,000,000,000,000,000,000,000.
Вероятность нахождения дубликатов в заданном наборе крайне мала. Даже при наличии триллиона 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 делает данный процесс еще проще благодаря своей удивительной поддержке и библиотекам. Данные в сети неструктурированы, и Python предоставляет простой способ для анализа и использования этих данных и даже для дальнейшего анализа и операций.
Вот некоторые популярные библиотеки для парсинга:
Beautiful Soup
Scrapy
В нашем примере мы получаем значения ведущих валют мира по сравнению с долларом США
Давайте используем парсинг для решения этой задачи.
Получение индекса максимального элемента в списке
Python не предоставляет процедуры для прямого получения индекса максимального или минимального элемента в списке или кортеже. К счастью, есть элегантный способ сделать это.
Если есть два или более элементов с максимальным значением, данный код возвращает индекс последнего.
Python не предоставляет процедуры для прямого получения индекса максимального или минимального элемента в списке или кортеже. К счастью, есть элегантный способ сделать это.
Если есть два или более элементов с максимальным значением, данный код возвращает индекс последнего.
**kwargs
Когда изучаешь любой язык, на пути встречается множество краеугольных камней. В случае с Python понимание таинственного синтаксиса **kwargs можно считать одним из них.
Две звёздочки впереди объекта словаря дают возможность передавать в функцию содержимое этого словаря как именованные аргументы.
Ключи словаря — это имена аргументов, а значения передаются в функцию. Вам даже не обязательно называть его kwargs.
Это полезно в тех случаях, когда ваши функции должны обрабатывать именованные аргументы, не определённые заранее.
Также это может пригодиться при написании функций-обёрток, которые передают все аргументы другой функции.
Когда изучаешь любой язык, на пути встречается множество краеугольных камней. В случае с Python понимание таинственного синтаксиса **kwargs можно считать одним из них.
Две звёздочки впереди объекта словаря дают возможность передавать в функцию содержимое этого словаря как именованные аргументы.
Ключи словаря — это имена аргументов, а значения передаются в функцию. Вам даже не обязательно называть его kwargs.
Это полезно в тех случаях, когда ваши функции должны обрабатывать именованные аргументы, не определённые заранее.
Также это может пригодиться при написании функций-обёрток, которые передают все аргументы другой функции.
👍1
Функция shorten()
Функция shorten() модуля textwrap усекает заданный текст, чтобы он поместился в заданную ширину width.
Сначала все пробелы заменяются одиночными пробелами. Если результат соответствует ширине, он возвращается. В противном случае с конца отбрасывается слова, чтобы оставшийся текст плюс заполнитель placeholder (по умолчанию [...]) поместились в указанную ширину width.
Функция shorten() модуля textwrap усекает заданный текст, чтобы он поместился в заданную ширину width.
Сначала все пробелы заменяются одиночными пробелами. Если результат соответствует ширине, он возвращается. В противном случае с конца отбрасывается слова, чтобы оставшийся текст плюс заполнитель placeholder (по умолчанию [...]) поместились в указанную ширину width.
Функция multimode()
Функция multimode() модуля statistics возвращает список наиболее часто встречающихся значений элементов в последовательности data в том порядке, в котором они были обнаружены.
Аргумент data может быть последовательностью или итерацией.
Функция statistics.multimode() вернет более одного результата, если в последовательности есть несколько элементов с одинаковым максимальным числом повторений или пустой список, если данные data пусты.
Функция multimode() модуля statistics возвращает список наиболее часто встречающихся значений элементов в последовательности data в том порядке, в котором они были обнаружены.
Аргумент data может быть последовательностью или итерацией.
Функция statistics.multimode() вернет более одного результата, если в последовательности есть несколько элементов с одинаковым максимальным числом повторений или пустой список, если данные data пусты.
👍1
Заменяем часть строки
Со строками в Python работать очень удобно, так как встроенных методов для них довольно много. Одним из методов является
Первым аргументом передается подстрока, которая будет изменяться в исходной строке. Вторым аргументом — то, на что будет заменяться.
Также есть третий опциональный аргумент, который отвечает за то, сколько раз вы хотите заменить старую подстроку на новую. По умолчанию все вхождения заменяются.
Со строками в Python работать очень удобно, так как встроенных методов для них довольно много. Одним из методов является
str.replace()
, который позволяет заменять части строк.Первым аргументом передается подстрока, которая будет изменяться в исходной строке. Вторым аргументом — то, на что будет заменяться.
Также есть третий опциональный аргумент, который отвечает за то, сколько раз вы хотите заменить старую подстроку на новую. По умолчанию все вхождения заменяются.
Функция groupby()
Функция groupby() модуля itertools создает итератор, который возвращает последовательные ключи и группы из итерируемой последовательности iterable.
Ключ key - это функция, вычисляющая значение ключа для каждого элемента. Если ключ не указан или равен None, ключом по умолчанию является функция тождественности и возвращает элемент без изменений. Как правило, iterable уже должна быть отсортирована по той же ключевой функции.
Функция groupby() модуля itertools создает итератор, который возвращает последовательные ключи и группы из итерируемой последовательности iterable.
Ключ key - это функция, вычисляющая значение ключа для каждого элемента. Если ключ не указан или равен None, ключом по умолчанию является функция тождественности и возвращает элемент без изменений. Как правило, iterable уже должна быть отсортирована по той же ключевой функции.
👍1
Назначение переменных и функций по условию
Иногда элементы if настолько просты, что кажется излишним тратить на них строки. В этом случае имеет смысл применить тернарный оператор if/else:
A = Y if X else Z
Интерпретатор выполняет выражение Y, если объект X – истина, и Z, если X – ложь. Не злоупотребляйте этим выражением, если X, Y, Z имеют сложную форму записи.
Тернарный оператор можно использовать не только для переменных, но и для функций.
Иногда элементы if настолько просты, что кажется излишним тратить на них строки. В этом случае имеет смысл применить тернарный оператор if/else:
A = Y if X else Z
Интерпретатор выполняет выражение Y, если объект X – истина, и Z, если X – ложь. Не злоупотребляйте этим выражением, если X, Y, Z имеют сложную форму записи.
Тернарный оператор можно использовать не только для переменных, но и для функций.