⚡️ Что выведет этот код?
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