Python Community
12.9K subscribers
1.25K photos
36 videos
15 files
737 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Что выведет этот код?
Anonymous Quiz
18%
0 1 2
31%
a b c
19%
0 a 1 b 2 c
19%
Ошибку
13%
Ничего из этого
⚡️ 2 лайфхака для работы с файлами

• Перемещение файлов. С помощью библиотеки shutil вполне можно перемещать файлы из одной папки в другую.

Если вы не хотите импортировать дополнительные библиотеки, вы можете воспользоваться os.rename или os.replace, но это значительно усложнит вашу задачу.

Гораздо проще воспользоваться shutil.move(), чтобы перемещать файлы.

• Объединение компонентов пути. Для разделения компонентов пути часто используется "/", но если вы хотите, чтобы программа работала на разных платформах, этот вариант не подойдёт.

Гораздо лучше объединять компоненты пути с помощью этой функции: os.path.join().
🖥 Уроки Python

👨‍💻 Автор:
Web Developer Blog

1] Начало работы и установка
2] Типы данных, переменные
3] Арифметические операции
4] Условия и циклы if, while, for
5] Функции и как с ними работать
6] Списки, массивы
7] Кортежи

ℹ️ Смотрите эти и остальные 5 видеоуроков на YouTube

#Python
👍2
⚡️ Удаление файлов и папок

Для удаления файлов воспользуйтесь командой os.remove().

Если вам нужно удалить папку, то на этот случай есть 2 команды:

• os.rmdir()

• shutil.rmtree()

Первая команда поможет вам удалить пустой каталог.

Если же в папке есть какое-то содержимое, воспользуйтесь второй командой — она безвозвратно удалит каталог вместе со всем содержимым.
⚡️ Библиотека Emoji

Трудно представить переписку с ботом без смайлов: с их помощью текст становится гораздо «живее».

Есть библиотека, которая позволяет удобно использовать эмодзи в коде.

С её помощью можно и вставлять эмодзи, и находить их в тексте, и даже назначать в качестве переменных.

Библиотека отлично комбинируется с другими. Её можно использовать в Telegram или ВК ботах или даже на сайтах.

Чтобы получить нужный текст, воспользуйтесь emoji.emojize(`Python is :name_smile:`).

На картинке выше представлены некоторые из доступных смайлов и их названия.
👍1
⚡️ Полоса прогресса

Иногда пользователь может подумать, что программа не отвечает, и начать предпринимать какие-то ненужные действия.

Чтобы он не беспокоился об этом, рекомендуем добавлять в свои проекты полоску прогресса.

Это по-большей части касается синхронных приложений, когда код не будет реагировать на другие действия и поставит их в очередь до тех пор, пока не выполнит какое-то действие.

Писать полосу прогресса самостоятельно — гиблое дело, которое отвлечёт от самой программы, поэтому воспользуйтесь простой библиотекой Progressbar.
⚡️ Создание планировщика

С помощью довольно гибкой библиотеки schedule можно создавать задачи, выполняемые с определённым интервалом.

Промежуток между ними можно настроить на своё усмотрение. Все они работают до того, как пользователь выключит приложение.

Это гораздо удобнее стандартного таймера, ведь с этой библиотекой будет гораздо проще работать и вам, и другим программистом.

Чтобы установить библиотеку, воспользуйтесь этой командой:

install schedule
⚡️ Библиотека 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.

Для этого необходимо установить модуль, выполнив команду:

pip install sh
👍1
⚡️ Библиотека для работы с изображениями

С помощью библиотеки PIL можно выполнять действия с картинками прямо в одну строчку.

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

Установка стандартная:

install pillow

По желанию, вы можете использовать эту библиотеку для перебора всех пикселей и получения их в RGB цвете.
⚡️ 3 полезные функции для Python

• dict
— функция для создания словаря.

Обычно она принимает 2 вида аргументов: или словарь, который уже существует, или — список кортежей.

Если в качестве аргумента указывается существующий словарь, функция dict возвращает скопированный аргумент, а если список кортежей — новый словарь.

• breakpoint() — функция для остановки выполнения кода и перехода в отладчик.

Импорт этого модуля происходит автоматически.

• super() — обращение к родительскому классу.

Её можно использовать для единичного или совместного множественного наследования.

Да, создавать классы может быть актуально далеко не во всех ситуациях, но иногда это может значительно облегчить работу.
👍1
⚡️ Добавление пробелов между знаками

Небольшой скрипт, который добавляет добавить пробел после каждого символа.

Первым делом скрипт проверяет массив sys.argv. Если длинна массива больше единицы, то массив превращается в один большой текст и сохраняется в переменной text.

Далее, с помощью list, превращаем text в массив символов и просто добавляем между ними пробелы.

Если же никаких аргументов нет, то показываем пользователю, как пользоваться скриптом.

• P. S. sys.argv[0]название запускаемого файла

💾 Скачать пример скрипта
⚡️ Библиотека infinity

Чаще всего назначение самой большой переменной вызывает проблемы про написании определённых сортировок.

Безусловно, её можно решить простым вводом большого числа или, например, возведением в степень.

Однако это — крайне неудобно, учитывая то, что есть и более простые способы.

Так, вы можете воспользоваться float("infinity") или float("inf"), чтобы получить максимальное возможное число.

Если перед "infinity" написать знак "-", библиотека будет искать минимальное возможное число.
⚡️ Аргументы командной строки

• Встроенная библиотека sys

sys — библиотека, дающая доступ к некоторым переменным и функциям, которые взаимодействуют с Python. Пока что в этой библиотеке нам потребуется только переменная argv.

Это — массив состоящий из строк, в который входят все аргументы командной строки.

• Argparse

С помощью этого аргумента можно гораздо быстрее настраивать правила для других аргументов командной строки.

Первым делом нужно создать сам парсер — argparse.ArgumentParser() и воспользоваться add_argument, чтобы добавить новые значения.

Также, аргументы командной строки можно получить используя parse_args.
⚡️ Примитивная игра «Угадай число»

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

В этом игровом цикле программа каждый раз спрашивает у пользователя число от 0 до 1000.

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

• Если значения равны, пишем игроку о его победе.

• В другом случае — выводим ему сообщение о том, что загаданное число больше чем то, что он ввёл.

В случае отказа от продолжения игры мы просто закрываем программу, используя sys.exit().

💾 Скачать пример кода
⚡️ Разные цвета в выводе Python

Помимо сторонних библиотек, можно использовать и встроенные инструменты.

Так, в команде print вы можете использовать специальные символы для смены цвета фона, текста и наложения эффектов просто изменяя некоторые значения:

• от \033[0m до \033[7m — различные эффекты для теста, такие как мигание, курсив, подчёркивание.

• \033[0m — сброс к изначальным настройкам

• от \033[30m до \033[37m — цвет текста. Возможные варианты — чёрный, красный, зелёный, жёлтый, синий, фиолетовый, бирюзовый, белый.

• от \033[40m до \033[47m — цвет фона. Варианты — такие же, как и цвет текста.
⚡️ Три «помощника» цикла

enumerate — функция, которая возвращает число (чаще всего это индекс) и значение в виде кортежа. Она будет полезна, если, например, нужно почитать количество строк в файле или узнать, какой индекс у элемента.

zip — функция, которая соединяет два списка в один. За один проход в цикле возвращается кортеж с значением из первого списка и второго.

reversed — также используется в цикле: переворачивает список, чтобы вы могли пройтись по нему от последнего элемента до первого, при этом ничего не изменяя. Если вам нужен именно перевёрнутый список, используйте listName.reverse().
⚡️ Библиотеки для создания телеграм ботов

• 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) — перемешивает значения в списке
⚡️ Асинхронное программирование

Асинхронное программирование — довольно удобная вещь для оптимизации программы, особенно если она часто работает с запросами, связанные с записью или чтением диска.

Суть ассинхронного программирования такова — пока выполняется что-то одно, долгое, программа не останавливается, а продолжает выполнять свои задачи.

Для примера — пока вы ждёте приготовление торта (ожидание ответа от сервера) вы можете расставить тарелки (подготовка данных).

Самая популярная библиотека для данных задач — asyncio. Скачать её можно по следующей команде:

pip install asyncio