⚡️ Полоса прогресса
Иногда пользователь может подумать, что программа не отвечает, и начать предпринимать какие-то ненужные действия.
Чтобы он не беспокоился об этом, рекомендуем добавлять в свои проекты полоску прогресса.
Это по-большей части касается синхронных приложений, когда код не будет реагировать на другие действия и поставит их в очередь до тех пор, пока не выполнит какое-то действие.
Писать полосу прогресса самостоятельно — гиблое дело, которое отвлечёт от самой программы, поэтому воспользуйтесь простой библиотекой Progressbar.
Иногда пользователь может подумать, что программа не отвечает, и начать предпринимать какие-то ненужные действия.
Чтобы он не беспокоился об этом, рекомендуем добавлять в свои проекты полоску прогресса.
Это по-большей части касается синхронных приложений, когда код не будет реагировать на другие действия и поставит их в очередь до тех пор, пока не выполнит какое-то действие.
Писать полосу прогресса самостоятельно — гиблое дело, которое отвлечёт от самой программы, поэтому воспользуйтесь простой библиотекой Progressbar.
⚡️ Создание планировщика
С помощью довольно гибкой библиотеки schedule можно создавать задачи, выполняемые с определённым интервалом.
Промежуток между ними можно настроить на своё усмотрение. Все они работают до того, как пользователь выключит приложение.
Это гораздо удобнее стандартного таймера, ведь с этой библиотекой будет гораздо проще работать и вам, и другим программистом.
Чтобы установить библиотеку, воспользуйтесь этой командой:
С помощью довольно гибкой библиотеки schedule можно создавать задачи, выполняемые с определённым интервалом.
Промежуток между ними можно настроить на своё усмотрение. Все они работают до того, как пользователь выключит приложение.
Это гораздо удобнее стандартного таймера, ведь с этой библиотекой будет гораздо проще работать и вам, и другим программистом.
Чтобы установить библиотеку, воспользуйтесь этой командой:
install schedule
⚡️ Библиотека JmesPath
Работать в Python с json файлами очень удобно, поскольку они отлично конвертируются в словари.
Однако, если вам нужно получить данные из файла, формат json проигрывает в этом плане по удобству — он содержит множество вложений.
Найти что-то можно, но это займёт гораздо больше времени, чем могло бы.
Библиотека JmesPath облегчает эту задачу. Покажем на конкретном примере:
•
•
Да, кажется длиннее, но на деле код написан проще. В случае чего вы так же без проблем сможете отредактировать такую строку.
Работать в Python с json файлами очень удобно, поскольку они отлично конвертируются в словари.
Однако, если вам нужно получить данные из файла, формат json проигрывает в этом плане по удобству — он содержит множество вложений.
Найти что-то можно, но это займёт гораздо больше времени, чем могло бы.
Библиотека JmesPath облегчает эту задачу. Покажем на конкретном примере:
•
file[`a`][`b`][`c`]
— было•
jmespath.search(`a.b.c`, file)
— стало.Да, кажется длиннее, но на деле код написан проще. В случае чего вы так же без проблем сможете отредактировать такую строку.
👍1
⚡️ Bash прямо в Python
Каждый программист должен знать язык bash, если он хочет работать с Linux.
Думаем, основы bash знают все, поскольку без него невозможно даже запустить программу на сервере.
Модуль sh позволяет использовать bash прямо в Python-коде.
Если вы не знаете, как написать что-то на Python, то вы всегда можете воспользоваться bash.
Для этого необходимо установить модуль, выполнив команду:
Каждый программист должен знать язык bash, если он хочет работать с Linux.
Думаем, основы bash знают все, поскольку без него невозможно даже запустить программу на сервере.
Модуль sh позволяет использовать bash прямо в Python-коде.
Если вы не знаете, как написать что-то на Python, то вы всегда можете воспользоваться bash.
Для этого необходимо установить модуль, выполнив команду:
pip install sh
👍1
⚡️ Библиотека для работы с изображениями
С помощью библиотеки PIL можно выполнять действия с картинками прямо в одну строчку.
Например, поворачивать их по градусам, уменьшать количество цветов (и занимаемое место), обрезать и даже накладывать различные эффекты.
Установка стандартная:
С помощью библиотеки PIL можно выполнять действия с картинками прямо в одну строчку.
Например, поворачивать их по градусам, уменьшать количество цветов (и занимаемое место), обрезать и даже накладывать различные эффекты.
Установка стандартная:
install pillow
По желанию, вы можете использовать эту библиотеку для перебора всех пикселей и получения их в RGB цвете.⚡️ 3 полезные функции для Python
• dict — функция для создания словаря.
Обычно она принимает 2 вида аргументов: или словарь, который уже существует, или — список кортежей.
Если в качестве аргумента указывается существующий словарь, функция dict возвращает скопированный аргумент, а если список кортежей — новый словарь.
• breakpoint() — функция для остановки выполнения кода и перехода в отладчик.
Импорт этого модуля происходит автоматически.
• super() — обращение к родительскому классу.
Её можно использовать для единичного или совместного множественного наследования.
Да, создавать классы может быть актуально далеко не во всех ситуациях, но иногда это может значительно облегчить работу.
• dict — функция для создания словаря.
Обычно она принимает 2 вида аргументов: или словарь, который уже существует, или — список кортежей.
Если в качестве аргумента указывается существующий словарь, функция dict возвращает скопированный аргумент, а если список кортежей — новый словарь.
• breakpoint() — функция для остановки выполнения кода и перехода в отладчик.
Импорт этого модуля происходит автоматически.
• super() — обращение к родительскому классу.
Её можно использовать для единичного или совместного множественного наследования.
Да, создавать классы может быть актуально далеко не во всех ситуациях, но иногда это может значительно облегчить работу.
👍1
⚡️ Добавление пробелов между знаками
Небольшой скрипт, который добавляет добавить пробел после каждого символа.
Первым делом скрипт проверяет массив sys.argv. Если длинна массива больше единицы, то массив превращается в один большой текст и сохраняется в переменной text.
Далее, с помощью list, превращаем text в массив символов и просто добавляем между ними пробелы.
Если же никаких аргументов нет, то показываем пользователю, как пользоваться скриптом.
• P. S. sys.argv[0] — название запускаемого файла
💾 Скачать пример скрипта
Небольшой скрипт, который добавляет добавить пробел после каждого символа.
Первым делом скрипт проверяет массив sys.argv. Если длинна массива больше единицы, то массив превращается в один большой текст и сохраняется в переменной text.
Далее, с помощью list, превращаем text в массив символов и просто добавляем между ними пробелы.
Если же никаких аргументов нет, то показываем пользователю, как пользоваться скриптом.
• P. S. sys.argv[0] — название запускаемого файла
💾 Скачать пример скрипта
⚡️ Библиотека infinity
Чаще всего назначение самой большой переменной вызывает проблемы про написании определённых сортировок.
Безусловно, её можно решить простым вводом большого числа или, например, возведением в степень.
Однако это — крайне неудобно, учитывая то, что есть и более простые способы.
Так, вы можете воспользоваться float("infinity") или float("inf"), чтобы получить максимальное возможное число.
Если перед "infinity" написать знак "-", библиотека будет искать минимальное возможное число.
Чаще всего назначение самой большой переменной вызывает проблемы про написании определённых сортировок.
Безусловно, её можно решить простым вводом большого числа или, например, возведением в степень.
Однако это — крайне неудобно, учитывая то, что есть и более простые способы.
Так, вы можете воспользоваться float("infinity") или float("inf"), чтобы получить максимальное возможное число.
Если перед "infinity" написать знак "-", библиотека будет искать минимальное возможное число.
⚡️ Аргументы командной строки
• Встроенная библиотека sys
sys — библиотека, дающая доступ к некоторым переменным и функциям, которые взаимодействуют с Python. Пока что в этой библиотеке нам потребуется только переменная argv.
Это — массив состоящий из строк, в который входят все аргументы командной строки.
• Argparse
С помощью этого аргумента можно гораздо быстрее настраивать правила для других аргументов командной строки.
Первым делом нужно создать сам парсер —
Также, аргументы командной строки можно получить используя parse_args.
• Встроенная библиотека sys
sys — библиотека, дающая доступ к некоторым переменным и функциям, которые взаимодействуют с Python. Пока что в этой библиотеке нам потребуется только переменная argv.
Это — массив состоящий из строк, в который входят все аргументы командной строки.
• Argparse
С помощью этого аргумента можно гораздо быстрее настраивать правила для других аргументов командной строки.
Первым делом нужно создать сам парсер —
argparse.ArgumentParser()
и воспользоваться add_argument, чтобы добавить новые значения.Также, аргументы командной строки можно получить используя parse_args.
⚡️ Примитивная игра «Угадай число»
Первым делом программа запускает основной цикл, в котором спрашивает, желает ли игрок начать игру или выйти из программы. В первом случае запускается игровой цикл.
В этом игровом цикле программа каждый раз спрашивает у пользователя число от 0 до 1000.
• Если введённое число меньше, чем загаданное, то мы оповещаем об этом игрока.
• Если значения равны, пишем игроку о его победе.
• В другом случае — выводим ему сообщение о том, что загаданное число больше чем то, что он ввёл.
В случае отказа от продолжения игры мы просто закрываем программу, используя sys.exit().
💾 Скачать пример кода
Первым делом программа запускает основной цикл, в котором спрашивает, желает ли игрок начать игру или выйти из программы. В первом случае запускается игровой цикл.
В этом игровом цикле программа каждый раз спрашивает у пользователя число от 0 до 1000.
• Если введённое число меньше, чем загаданное, то мы оповещаем об этом игрока.
• Если значения равны, пишем игроку о его победе.
• В другом случае — выводим ему сообщение о том, что загаданное число больше чем то, что он ввёл.
В случае отказа от продолжения игры мы просто закрываем программу, используя sys.exit().
💾 Скачать пример кода
⚡️ Разные цвета в выводе Python
Помимо сторонних библиотек, можно использовать и встроенные инструменты.
Так, в команде print вы можете использовать специальные символы для смены цвета фона, текста и наложения эффектов просто изменяя некоторые значения:
• от \033[0m до \033[7m — различные эффекты для теста, такие как мигание, курсив, подчёркивание.
• \033[0m — сброс к изначальным настройкам
• от \033[30m до \033[37m — цвет текста. Возможные варианты — чёрный, красный, зелёный, жёлтый, синий, фиолетовый, бирюзовый, белый.
• от \033[40m до \033[47m — цвет фона. Варианты — такие же, как и цвет текста.
Помимо сторонних библиотек, можно использовать и встроенные инструменты.
Так, в команде print вы можете использовать специальные символы для смены цвета фона, текста и наложения эффектов просто изменяя некоторые значения:
• от \033[0m до \033[7m — различные эффекты для теста, такие как мигание, курсив, подчёркивание.
• \033[0m — сброс к изначальным настройкам
• от \033[30m до \033[37m — цвет текста. Возможные варианты — чёрный, красный, зелёный, жёлтый, синий, фиолетовый, бирюзовый, белый.
• от \033[40m до \033[47m — цвет фона. Варианты — такие же, как и цвет текста.
⚡️ Три «помощника» цикла
•
•
•
•
enumerate
— функция, которая возвращает число (чаще всего это индекс) и значение в виде кортежа. Она будет полезна, если, например, нужно почитать количество строк в файле или узнать, какой индекс у элемента.•
zip
— функция, которая соединяет два списка в один. За один проход в цикле возвращается кортеж с значением из первого списка и второго.•
reversed
— также используется в цикле: переворачивает список, чтобы вы могли пройтись по нему от последнего элемента до первого, при этом ничего не изменяя. Если вам нужен именно перевёрнутый список, используйте listName.reverse()
.⚡️ Библиотеки для создания телеграм ботов
• Python Telegram bot — довольно удобная и понятная библиотека с хорошей документацией. Отлично подойдёт для начала изучения работы ботов.
Установка:
Установка:
Установка:
• Python Telegram bot — довольно удобная и понятная библиотека с хорошей документацией. Отлично подойдёт для начала изучения работы ботов.
Установка:
pip install python-telegram-bot
• Telebot — хорошая альтернатива предыдущей библиотеке. Также с полной документацией и большим количеством статей. Установка:
pip install pyTelegramBotAPI
• Telethon — более тяжёлая библиотека, чем две предыдущие, но с гораздо большим функционалом. Также есть возможность создавать пользователей и поддержка работы с async. Установка:
pip3 install telethon
⚡ Модуль random
Раньше мы уже использовали этот модуль в одном из файлов, настало время рассказать о нём поподробнее.
random — самая популярная библиотека для создания псевдо-случайных чисел, с довольно большим функционалом.
randint(min, max) — возвращает случайное целое число.
randrange(start, stop) — возвращает случайное число в определённом промежутке.
choice(someList) — возвращает случайный элемент из списка
shuffle(someList) — перемешивает значения в списке
Раньше мы уже использовали этот модуль в одном из файлов, настало время рассказать о нём поподробнее.
random — самая популярная библиотека для создания псевдо-случайных чисел, с довольно большим функционалом.
randint(min, max) — возвращает случайное целое число.
randrange(start, stop) — возвращает случайное число в определённом промежутке.
choice(someList) — возвращает случайный элемент из списка
shuffle(someList) — перемешивает значения в списке
⚡️ Асинхронное программирование
Асинхронное программирование — довольно удобная вещь для оптимизации программы, особенно если она часто работает с запросами, связанные с записью или чтением диска.
Суть ассинхронного программирования такова — пока выполняется что-то одно, долгое, программа не останавливается, а продолжает выполнять свои задачи.
Для примера — пока вы ждёте приготовление торта (ожидание ответа от сервера) вы можете расставить тарелки (подготовка данных).
Самая популярная библиотека для данных задач — asyncio. Скачать её можно по следующей команде:
Асинхронное программирование — довольно удобная вещь для оптимизации программы, особенно если она часто работает с запросами, связанные с записью или чтением диска.
Суть ассинхронного программирования такова — пока выполняется что-то одно, долгое, программа не останавливается, а продолжает выполнять свои задачи.
Для примера — пока вы ждёте приготовление торта (ожидание ответа от сервера) вы можете расставить тарелки (подготовка данных).
Самая популярная библиотека для данных задач — asyncio. Скачать её можно по следующей команде:
pip install asyncio
⚡️ Пример асинхроного программирования
Первым делом импортируем библиотеки: asyncio и aiohttp — она используется для асинхроного создания запросов.
После этого создаём функции с ожиданием и отправкой запроса.
Используя get_event_loop() получаем цикл, в котором работает ayncio, создаём список задач, используя create_task(func).
После этого, с помощью run_until_complete(asyncio.wait(tasks)) запускаем цикл и ожидаем его выполнения и закрываем цикл — close().
Скачайте код по ссылке ниже, чтобы увидеть результат.
💾 Скачать пример кода
Первым делом импортируем библиотеки: asyncio и aiohttp — она используется для асинхроного создания запросов.
После этого создаём функции с ожиданием и отправкой запроса.
Используя get_event_loop() получаем цикл, в котором работает ayncio, создаём список задач, используя create_task(func).
После этого, с помощью run_until_complete(asyncio.wait(tasks)) запускаем цикл и ожидаем его выполнения и закрываем цикл — close().
Скачайте код по ссылке ниже, чтобы увидеть результат.
💾 Скачать пример кода
⚡️ Строки в Python
Строки встречаются довольно часто во всех программах, поэтому было бы здорово уметь эффективно с ними работать.
Первое — срез.
С его помощью можно убрать некоторые элементы, причём не только в строках, но и в обычных списках.
Для этого следует использовать:
• someStr[1:9] — эта команда вернёт все значения от первого до девятого индекса
Также, есть несколько методов:
• replace(from, to) — метод, который заменяет все значения в списке с from на to.
• split(symbols) — метод, который позволяет разбить строку на список, используя символы, передаваемые в параметры
• format(*args, *kwargs) — форматирование строки. Очень удобный инструмент: он улучшает читабельность кода и упрощает его.
💾 Скачать пример кода
Строки встречаются довольно часто во всех программах, поэтому было бы здорово уметь эффективно с ними работать.
Первое — срез.
С его помощью можно убрать некоторые элементы, причём не только в строках, но и в обычных списках.
Для этого следует использовать:
• someStr[1:9] — эта команда вернёт все значения от первого до девятого индекса
Также, есть несколько методов:
• replace(from, to) — метод, который заменяет все значения в списке с from на to.
• split(symbols) — метод, который позволяет разбить строку на список, используя символы, передаваемые в параметры
• format(*args, *kwargs) — форматирование строки. Очень удобный инструмент: он улучшает читабельность кода и упрощает его.
💾 Скачать пример кода
⚡️Корутины и таски в ассинхроном программировании
Корутины — это функции, определённые с помощью await или async.
Стоит отметить, что обычный вызов функции не выполняет её: для этого стоит использовать asyncio.run() или await.
Таски или задачи — те же самые корутины, но они запускаются одновременно.
Для их создания используют asyncio.create_task(), а виде параметра принимает корутину.
Для запуска программ одновременно, следует использовать asyncio.gather(*tasks).
Корутины — это функции, определённые с помощью await или async.
Стоит отметить, что обычный вызов функции не выполняет её: для этого стоит использовать asyncio.run() или await.
Таски или задачи — те же самые корутины, но они запускаются одновременно.
Для их создания используют asyncio.create_task(), а виде параметра принимает корутину.
Для запуска программ одновременно, следует использовать asyncio.gather(*tasks).
⚡ Try, except, finally
В python мы довольно часто встречаемся с ошибками: деление на ноль, IndexError или, например, не правильное преобразование.
В таких случаях поможет конструкция try. Первым делом вы пишем действия внутри, которые собираемся выполнить. В случае, если возникнет ошибка, то except «поймает» её и выполнит указанные действия.
Блок finally выполняется всегда, независимо от того, возникло исключение или нет. Его часто используют для закрытия файлов или соединений.
В python мы довольно часто встречаемся с ошибками: деление на ноль, IndexError или, например, не правильное преобразование.
В таких случаях поможет конструкция try. Первым делом вы пишем действия внутри, которые собираемся выполнить. В случае, если возникнет ошибка, то except «поймает» её и выполнит указанные действия.
Блок finally выполняется всегда, независимо от того, возникло исключение или нет. Его часто используют для закрытия файлов или соединений.
⚡ JSON в python
JSON — JavaScript Object Notation. Это структурированные данные, понятные человеку.
Они, также называемые «словарём» часто используются при создании сайтов и игр.
Этот формат позволяет функциям «общаться» друг с другом, сохранять какие-то значения или представлять Настройки или любые другие данные, понятные пользователю.
Создать словарь можно используя фигурные скобки. Для работы с ними используют модуль json, а метод dumps превращает словарь в строку и позволяет сохранить в файл.
Также, метод load используется для декодирования и позволяет считывать значения с файла напрямую.
JSON — JavaScript Object Notation. Это структурированные данные, понятные человеку.
Они, также называемые «словарём» часто используются при создании сайтов и игр.
Этот формат позволяет функциям «общаться» друг с другом, сохранять какие-то значения или представлять Настройки или любые другие данные, понятные пользователю.
Создать словарь можно используя фигурные скобки. Для работы с ними используют модуль json, а метод dumps превращает словарь в строку и позволяет сохранить в файл.
Также, метод load используется для декодирования и позволяет считывать значения с файла напрямую.