⚡️ Что выведет этот код?
Anonymous Quiz
18%
0 1 2
31%
a b c
19%
0 a 1 b 2 c
19%
Ошибку
13%
Ничего из этого
⚡️ 2 лайфхака для работы с файлами
• Перемещение файлов. С помощью библиотеки shutil вполне можно перемещать файлы из одной папки в другую.
Если вы не хотите импортировать дополнительные библиотеки, вы можете воспользоваться
Гораздо проще воспользоваться
• Объединение компонентов пути. Для разделения компонентов пути часто используется "/", но если вы хотите, чтобы программа работала на разных платформах, этот вариант не подойдёт.
Гораздо лучше объединять компоненты пути с помощью этой функции:
• Перемещение файлов. С помощью библиотеки shutil вполне можно перемещать файлы из одной папки в другую.
Если вы не хотите импортировать дополнительные библиотеки, вы можете воспользоваться
os.rename
или os.replace
, но это значительно усложнит вашу задачу.Гораздо проще воспользоваться
shutil.move()
, чтобы перемещать файлы.• Объединение компонентов пути. Для разделения компонентов пути часто используется "/", но если вы хотите, чтобы программа работала на разных платформах, этот вариант не подойдёт.
Гораздо лучше объединять компоненты пути с помощью этой функции:
os.path.join()
.⚡️ Удаление файлов и папок
Для удаления файлов воспользуйтесь командой
Если вам нужно удалить папку, то на этот случай есть 2 команды:
• os.rmdir()
• shutil.rmtree()
Первая команда поможет вам удалить пустой каталог.
Если же в папке есть какое-то содержимое, воспользуйтесь второй командой — она безвозвратно удалит каталог вместе со всем содержимым.
Для удаления файлов воспользуйтесь командой
os.remove()
.Если вам нужно удалить папку, то на этот случай есть 2 команды:
• os.rmdir()
• shutil.rmtree()
Первая команда поможет вам удалить пустой каталог.
Если же в папке есть какое-то содержимое, воспользуйтесь второй командой — она безвозвратно удалит каталог вместе со всем содержимым.
⚡️ Библиотека Emoji
Трудно представить переписку с ботом без смайлов: с их помощью текст становится гораздо «живее».
Есть библиотека, которая позволяет удобно использовать эмодзи в коде.
С её помощью можно и вставлять эмодзи, и находить их в тексте, и даже назначать в качестве переменных.
Библиотека отлично комбинируется с другими. Её можно использовать в Telegram или ВК ботах или даже на сайтах.
Чтобы получить нужный текст, воспользуйтесь
На картинке выше представлены некоторые из доступных смайлов и их названия.
Трудно представить переписку с ботом без смайлов: с их помощью текст становится гораздо «живее».
Есть библиотека, которая позволяет удобно использовать эмодзи в коде.
С её помощью можно и вставлять эмодзи, и находить их в тексте, и даже назначать в качестве переменных.
Библиотека отлично комбинируется с другими. Её можно использовать в Telegram или ВК ботах или даже на сайтах.
Чтобы получить нужный текст, воспользуйтесь
emoji.emojize(`Python is :name_smile:`)
.На картинке выше представлены некоторые из доступных смайлов и их названия.
👍1
⚡️ Полоса прогресса
Иногда пользователь может подумать, что программа не отвечает, и начать предпринимать какие-то ненужные действия.
Чтобы он не беспокоился об этом, рекомендуем добавлять в свои проекты полоску прогресса.
Это по-большей части касается синхронных приложений, когда код не будет реагировать на другие действия и поставит их в очередь до тех пор, пока не выполнит какое-то действие.
Писать полосу прогресса самостоятельно — гиблое дело, которое отвлечёт от самой программы, поэтому воспользуйтесь простой библиотекой 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