⚡️ Принцип OCP
Дословно этот принцип расшифровывается как «Open-Closed Principle» — принцип открытости к расширению.
Это значит, что код должен иметь возможность расширения, при этом его старый вариант не нужно было как-то переписывать или изменять.
Возможно, на первый взгляд покажется, что принцип OCP конфликтует с YAGNI, но это — не так.
YAGNI говорит, что нельзя писать код, который не используется в данный момент, а OCP — имеет отношение к более глубоким частям кода.
Дословно этот принцип расшифровывается как «Open-Closed Principle» — принцип открытости к расширению.
Это значит, что код должен иметь возможность расширения, при этом его старый вариант не нужно было как-то переписывать или изменять.
Возможно, на первый взгляд покажется, что принцип OCP конфликтует с YAGNI, но это — не так.
YAGNI говорит, что нельзя писать код, который не используется в данный момент, а OCP — имеет отношение к более глубоким частям кода.
📮 Что выведет этот код?
Anonymous Quiz
10%
[1, 4, 5]
20%
Ошибку
42%
[1, -2, -3]
29%
Посмотреть ответы
⚡️ Библиотека 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 раза писать один и тот же код, гораздо проще, лучше и эффективнее создать для него функцию.
Для чего это нужно? Ну, как минимум для того, чтобы упростить изменение кода в будущем.
Это особенно актуально для больших программ, где дублирование кода — просто недопустимо.
Ещё один принцип программирования, который гласит: «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 вполне можно перемещать файлы из одной папки в другую.
Если вы не хотите импортировать дополнительные библиотеки, вы можете воспользоваться
Гораздо проще воспользоваться
• Объединение компонентов пути. Для разделения компонентов пути часто используется "/", но если вы хотите, чтобы программа работала на разных платформах, этот вариант не подойдёт.
Гораздо лучше объединять компоненты пути с помощью этой функции:
• Перемещение файлов. С помощью библиотеки 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