📌 Loguru
Выбросьте logging, удалите его из стандартных библиотек и установите loguru. Вы не пожалеете.
Установка:
Ещё интересной фишкой является отправка сообщений на почту. Установив notifiers, вы сможете пересылать ошибки к себе на email.
📕 Документация
#урок
Выбросьте logging, удалите его из стандартных библиотек и установите loguru. Вы не пожалеете.
Установка:
pip install loguru
Можно догадаться, что это модуль для ведения записей, но он намного лучше встроенного решения. С ним в разы проще работать, он легко настраивается и управляется.Ещё интересной фишкой является отправка сообщений на почту. Установив notifiers, вы сможете пересылать ошибки к себе на email.
📕 Документация
#урок
📌 Roadmap по Python
Это дорожная карта, составленная более опытными разработчиками, чтобы новички знали с чего начать свой путь и куда двигаться дальше.
#roadmap
Это дорожная карта, составленная более опытными разработчиками, чтобы новички знали с чего начать свой путь и куда двигаться дальше.
#roadmap
Фокус с type
Знали ли вы, что с помощью type можно создавать типы? Просто передайте ему на пару аргументов больше и вы получите новый класс!
Так мы можем создать абсолютно новый класс и пользоваться им во время выполнения. Не очень стабильно, но интересно.
📕 Документация
#урок
Знали ли вы, что с помощью type можно создавать типы? Просто передайте ему на пару аргументов больше и вы получите новый класс!
Так мы можем создать абсолютно новый класс и пользоваться им во время выполнения. Не очень стабильно, но интересно.
📕 Документация
#урок
📌 Устали удалять
В этой папке хранится байткод приложения. И нет, я не говорю, что Python компилируемый язык, он просто заранее обрабатывает код и сохраняет, чтобы быстрее выполнится.
В ней можно найти .pyc и .pyo файлы. Это байткод и оптимизированный байткод. Они создаются заново, если код программы изменился.
📕 Подробнее
#урок
__pycache__
?В этой папке хранится байткод приложения. И нет, я не говорю, что Python компилируемый язык, он просто заранее обрабатывает код и сохраняет, чтобы быстрее выполнится.
В ней можно найти .pyc и .pyo файлы. Это байткод и оптимизированный байткод. Они создаются заново, если код программы изменился.
📕 Подробнее
#урок
📌 Дескрипторы
Это невероятно сложная, но класса штука. Проще говоря, это атрибуты-классы с методами
Когда мы получаем значение атрибута, вызывается
📕 HowTo
#урок
Это невероятно сложная, но класса штука. Проще говоря, это атрибуты-классы с методами
__get__(obj, objtype)
, __set__(obj, value)
и/или __delete__(obj)
.Когда мы получаем значение атрибута, вызывается
__get__()
, поведением которого управляем мы. Так мы можем создать, например, константу.📕 HowTo
#урок
📌 Немного про регулярные выражения
Регулярные выражения пишутся только один раз и больше не трогаются. Их просто нереально разобрать и изменить.
Но ситуацию можно исправить, если добавить комментарии и правильно воспользоваться f-строками.
📕 Статья по этой теме
#урок
Регулярные выражения пишутся только один раз и больше не трогаются. Их просто нереально разобрать и изменить.
Но ситуацию можно исправить, если добавить комментарии и правильно воспользоваться f-строками.
📕 Статья по этой теме
#урок
📌 Модуль copy
В python есть модуль, который называется copy. У него только две функции:
📕 Документация
#урок
В python есть модуль, который называется copy. У него только две функции:
copy()
и deepcopy()
.copy(x)
— поверхностно копирует объект. Просто создаёт новый, сохраняя все ссылки внутри него.deepcopy(x)
— глубокое клонирование. Создаёт новый и рекурсивно копирует элементы внутри.📕 Документация
#урок
Отсутствующие элементы в словаре
Если в словаре нет определённого ключа, то вызывается
Примерно по такому принципу, как на фото выше, работает defaultdict из модуля collections.
#урок
Если в словаре нет определённого ключа, то вызывается
__missing__
. Суть в том, что мы можем переопределить этот метод.Примерно по такому принципу, как на фото выше, работает defaultdict из модуля collections.
#урок
📌 Методы строк, о которых нужно знать
• ljust, rjust, center — используются для позиционирования текста. На самом деле, они просто создают строку, не меньше width и заполняют её пробелами (или другим, переданным символом).
• strip — удаляет пробелы, табуляцию, перенос на новую строку и тому подобные символы из конца и начала строки. Если передать другие символы, то функция избавится от них. rstrip и lstrip делают то же самое, только в конце и в начале строки.
• splitlines — возвращает список строк в тексте. Его лучше использовать вместо
#урок
• ljust, rjust, center — используются для позиционирования текста. На самом деле, они просто создают строку, не меньше width и заполняют её пробелами (или другим, переданным символом).
• strip — удаляет пробелы, табуляцию, перенос на новую строку и тому подобные символы из конца и начала строки. Если передать другие символы, то функция избавится от них. rstrip и lstrip делают то же самое, только в конце и в начале строки.
• splitlines — возвращает список строк в тексте. Его лучше использовать вместо
split('\n')
. #урок
📌
·
·
#урок
isdecimal()
vs isdigit()
vs isnumeric()
Эти три метода str используются для определения, является ли строка числом, но у них есть небольшие отличия.'123'.isdecimal()
— проверяет, является ли строка только набором цифр (1-9). В то время как:·
'123⁴'.isdigit()
вернёт True, даже если в строке есть маленькие цифры (² или \u00B2). ·
'½'.isnumeric()
вернёт True, даже если это дробь (½ или \u00BD).#урок
📌 Атрибуты — штука странная
Они хранятся в переменной
Подобных подход занимает много ОЗУ, если у вас много маленьких объектов. В таком случае используют
В этой переменной хранится список атрибутов, которые будут у класса.
#урок
Они хранятся в переменной
__dict__
. Если вы добавите, обновите, удалите атрибут, изменится и эта переменная.Подобных подход занимает много ОЗУ, если у вас много маленьких объектов. В таком случае используют
__slots__
.В этой переменной хранится список атрибутов, которые будут у класса.
__dict__
пропадёт, а значит нельзя будет добавлять/удалять атрибуты.#урок
page2.png
218.1 KB
Шпаргалка по Python
Шпаргалка по основным понятиям языка: типам переменных (int, float, bool, str, None), структурам данных (list, tuple, set, dict), функциям и ООП.
Поможет новичкам лучше усвоить знания и быстрей изучить язык.
#урок
Шпаргалка по основным понятиям языка: типам переменных (int, float, bool, str, None), структурам данных (list, tuple, set, dict), функциям и ООП.
Поможет новичкам лучше усвоить знания и быстрей изучить язык.
#урок
📌 Куча if'ов в элегантный код
В Python 3.10 появился Pattern matching. По своей сути — синтаксический сахар. В результате это всё равно превратится в if'ы, но человеку будет легче читать код.
С помощью match/case мы можем определять поведение объект на основе данных. Это похоже на switch/case в си-подобных языках, только возможностей в разы больше.
📕 Документация
#урок
В Python 3.10 появился Pattern matching. По своей сути — синтаксический сахар. В результате это всё равно превратится в if'ы, но человеку будет легче читать код.
С помощью match/case мы можем определять поведение объект на основе данных. Это похоже на switch/case в си-подобных языках, только возможностей в разы больше.
📕 Документация
#урок
📌 Скажи мне свой знак зодиака
aztro — проект с гороскопами. У него есть свой API, доступ к которому можно получить с помощью PyAztro.
Установка:
📕 Документация
#урок
aztro — проект с гороскопами. У него есть свой API, доступ к которому можно получить с помощью PyAztro.
Установка:
pip install pyaztro
Вы передаёте свой знак зодиака и можете узнать счастливое число, время, совместимость с кем-то и получить краткое описание.📕 Документация
#урок
📌 Только ключевые и только позиционные аргументы
Позиционные аргументы — те, что передаются по позиции (доступно с Python 3.8). Ключевые — те, что передаются за счёт
Все аргументы до косой черты (/) считаются позиционными, то есть передать в них данные можно только в определённом порядке.
Все аргументы после звёздочки (*) считаются ключевыми, то есть передать данные можно только с помощью
📕 PEP 570 (позиционные) и PEP 3102 (ключевые)
#урок
Позиционные аргументы — те, что передаются по позиции (доступно с Python 3.8). Ключевые — те, что передаются за счёт
key=value
.Все аргументы до косой черты (/) считаются позиционными, то есть передать в них данные можно только в определённом порядке.
Все аргументы после звёздочки (*) считаются ключевыми, то есть передать данные можно только с помощью
key=value
.📕 PEP 570 (позиционные) и PEP 3102 (ключевые)
#урок
Самое время побыть Open Source разработчиком
Если вы уверены, что готовы к серьёзным проектам, то можете попробовать себя в Open Source разработке на Github.
К тому же, такое занятие сильно прокачает ваши навыки и сделает более привлекательным в глазах работодателя.
И это совсем не сложно. Есть простые issue, до которых просто не доходят руки у разработчиков. Их список вы можете найти тут.
#урок
Если вы уверены, что готовы к серьёзным проектам, то можете попробовать себя в Open Source разработке на Github.
К тому же, такое занятие сильно прокачает ваши навыки и сделает более привлекательным в глазах работодателя.
И это совсем не сложно. Есть простые issue, до которых просто не доходят руки у разработчиков. Их список вы можете найти тут.
#урок
🎙 Собеседование Python. Разработчик самоучка.
Собеседование — одна из наиболее стрессовых тем для разработчиков, но только первые двадцать раз ))
Делимся ссылкой на интересное собеседование на должность Python-разработчика. Можно подчеркнуть для себя множество полной информации и нюансов: https://youtu.be/maopv6Sm550
#Собеседование
Собеседование — одна из наиболее стрессовых тем для разработчиков, но только первые двадцать раз ))
Делимся ссылкой на интересное собеседование на должность Python-разработчика. Можно подчеркнуть для себя множество полной информации и нюансов: https://youtu.be/maopv6Sm550
#Собеседование
📌 Принцип YAGNI
Вам это не нужно. Не добавляйте кнопку, если вас об этом не просили. Не убивайте всё время на супер быстрый движок, если вас об этом не просили.
Инициатива это хорошо, но из-за неё можно потерять время и деньги. Клиенту нужен работающий продукт, а не куча разных фич.
Если вы нарушите принцип то, в лучшем случае, потеряете своё время, в худшем — время команды и деньги клиента.
#урок
Вам это не нужно. Не добавляйте кнопку, если вас об этом не просили. Не убивайте всё время на супер быстрый движок, если вас об этом не просили.
Инициатива это хорошо, но из-за неё можно потерять время и деньги. Клиенту нужен работающий продукт, а не куча разных фич.
Если вы нарушите принцип то, в лучшем случае, потеряете своё время, в худшем — время команды и деньги клиента.
#урок