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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Библиотека FuzzyWuzzy

Это — простая, но очень полезная и интересная библиотека для поиска совпадений в тексте.

К примеру, вы можете использовать её во время работы с ботами, которые общаются голосом или текстом — она значительно упростит некоторые ваши задачи.

Безусловно, вместо этого инструмента вы можете использовать любой другой, но именно он — самый удобный.

Чтобы установить библиотеку, необходимо выполнить команду: install fuzzywuzzy.
⚡️ Что выведет этот код?
Anonymous Quiz
25%
[0] [1] [2]
19%
[1] [2] [3]
23%
[0] [0, 1] [0, 1, 2]
32%
Ошибку
⚡️ Принцип DRY

Ещё один принцип программирования, который гласит: «Don`t repeat yourself», что в переводе значит «Не повторяйся».

Если код можно не дублировать, а этого можно избежать практически всегда, — не делайте этого.

Вместо того, чтобы 2 раза писать один и тот же код, гораздо проще, лучше и эффективнее создать для него функцию.

Для чего это нужно? Ну, как минимум для того, чтобы упростить изменение кода в будущем.

Это особенно актуально для больших программ, где дублирование кода — просто недопустимо.
⚡️ Что выведет этот код?
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().

💾 Скачать пример кода