⚡️ Принцип 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