Разъяснивший Python
6.97K subscribers
3.25K photos
47 videos
30 files
3.31K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
Объяснение:

functools.wraps обновляет обёртку, копируя метаданные оригинальной функции (name, __doc__ и т.д.). Без wraps мы бы получили wrapper None. Важно использовать wraps для сохранения информации о функции, особенно при отладке и документации.

Разъяснивший Python
7 пакетов Python для анализа и улучшения кода

Чтобы помочь программистам преодолеть препятствия, существует множество полезных инструментов и пакетов Python, которые специально разработаны для анализа и улучшения кода. В этой статье автор рассматривает 7 таких.

Читать…

Разъяснивший Python
Список с условием (List Comprehension)

List comprehension — один из самых мощных инструментов Python, позволяющий создавать списки одной строкой кода.

Этот подход не только компактнее, но и быстрее традиционных циклов. Важно не злоупотреблять сложными условиями — код должен оставаться читаемым. Однажды я переписал цикл из 15 строк в одну строку list comprehension, и код стал работать на 30% быстрее.

Разъяснивший Python
Многоточие в Python

Многоточие Python – это последовательность из трех точек, часто используемая в естественных языках. Но чего вы, возможно, не знаете – это еще и валидный объект в Python

>>> ...
# Вывод покажет: Ellipsis


Применяется он преимущественно в операциях нарезки матриц в NumPy. Однако можно использовать его вместо обычного pass в качестве плэйсхолдера в функции, которую еще не реализовали.

Разъяснивший Python
Спортивное программирование: что это, зачем и какие задачи приходится решать

Это не программирование ради программирования, как можно было бы подумать, — соревнования помогают участникам повысить профессиональный уровень, научившись решать сложные задачи из самых разных направлений разработки. Так что такое спортивное программирование и что о нём стоит знать новичку?

Читать…

Разъяснивший Python
Data classes

Начиная с версии 3.7, Python поставляется с классами данных. У них есть несколько преимуществ по сравнению с обычными классами или другими альтернативами:

- возврат нескольких значений или словарей;
- класс данных требует минимального количества кода;
- возможность сравнения классов данных;
- возможность распечатать класс данных для отладки при помощи repr;
- снижение вероятности ошибок в связи с требованием класса данных type hints.

Разъяснивший Python
List Comprehensions

List comprehension может заменить неэстетичные циклы, используемые для заполнения списка. Синтаксис выглядит следующим образом:
[ expression for item in list if conditional ]


Поскольку здесь можно использовать выражения, вам доступна работа с математикой, вызов внешней функции и, наконец, вы сможете использовать «if» для фильтрации списка.

Разъяснивший Python
Замена переменных на месте

Этот аккуратный трюк поможет сэкономить несколько строк кода.

Разъяснивший Python
Настраиваемый логгер-декоратор

Начнем с примера использования. Так мы не перегружаем внимание внутренней сложностью и повышаем шансы создать удачный интерфейс модуля. На этом принципе основана разработка через тестирование — test-driven development (TTD).

У класса Logger есть метод log_msg(), который можно использовать напрямую внутри функций.

Разъяснивший Python
Использование подчеркивания в REPL

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

Разъяснивший Python
Сложение списков

Не всегда операторы в python ведут себя так, как мы привыкли. Например сложение списков.

Как видно, инструкция 28 в случае + простое сложение, а в случае += — сложение на месте, которое не приводит к созданию нового списка. += в данном случае сопоставим по производительности с list.extend.

Разъяснивший Python
Декорируем функции

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

Разъяснивший Python
Форматирование именованных строк

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

Вы даже можете использовать функцию locals(), но в последних версиях Python придется обращаться к f-строкам.

Разъяснивший Python
Нарезка списка

Синтаксис нарезания таков:
a[start:stop:step]


Start, stop и step необязательны. У них есть дефолтные значения, которые активируются, если не заполнить параметры:
0 для start;
конец списка для stop;
1 для step.

Разъяснивший Python
Возврат нескольких значений

Функции в Python могут возвращать более одной переменной без применения словаря, списка или класса.

Здесь возвращается кортеж. С тем же эффектом можно было бы написать return (name, birthdate).
Это нормально для ограниченного количества возвращаемых значений. Но все, что превышает 3 значения, должно быть помещено в класс (data).

Разъяснивший Python
Объединение словарей

Начиная с Python 3.5, стало проще объединять словари.

Если встречаются дублирующиеся ключи – в первом словаре они будут перезаписаны.

Разъяснивший Python
This media is not supported in your browser
VIEW IN TELEGRAM
Хочешь заговорить на английском, но не с кем практиковаться?

Появилась ИИ-девушка, с которой можно общаться голосовыми на любые темы, как с носителем. Она слушает твою речь, подробно исправляет ошибки и помогает говорить увереннее. Попробовать можно бесплатно.

🇬🇧 Английский: @ChattyEnglishBot
🇩🇪 Немецкий: @ChattyGermanBot
🇪🇸 Испанский: @ChattySpanishBot
🇫🇷 Французский: @ChattyFrenchBot
🇮🇹 Итальянский: @ChattyItalianBot
🇵🇹 Португальский: @ChattyPortugueseBot
🇨🇳 Китайский: @ChattyChineseBot
🇯🇵 Японский: @ChattyJapaneseBot
🇰🇷 Корейский: @ChattyKoreanBot
🇸🇦 Арабский: @ChattyArabicBot
🇹🇷 Турецкий: @ChattyTurkishBot
🇷🇺 Русский: @ChattyRussianBot
🇵🇱 Польский: @ChattyPolandBot
👏1
Использование * и ** для распаковки аргументов функций

Некоторые функции требуют длинного списка аргументов. Этого следует избегать (например, с помощью классов данных), хотя это не всегда зависит от вас. Существует другой вариант – создать словарь с именованными аргументами и передать его функции. Так ваш код станет более читабельным.

Распаковать словарь можно, используя префикс **

Аналогично можно использовать * для распаковки массива и передачи его содержимого в качестве аргументов функции

Разъяснивший Python
🤔2😁1
Подключаем документацию к LLM

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

Читать...

Разъяснивший Python
❤1😁1
Получение уникальных элементов из списка или строки

Создавая набор с помощью функции set(), вы получаете все уникальные элементы из списка или объекта.

Разъяснивший Python