Использование оператора match case
В Python 3.10 был введён оператор match case для сопоставления с образцом (pattern matching). Он предоставляет более питоничный способ обработки множества условий без использования традиционных конструкций if-else.
Выше представлен пример использования оператора
Подход с match-case более читаемый по сравнению с традиционным if, особенно при работе с большим числом условий
Ставь лайк если это полезно для тебя😈
👉 @PythonPortal
В Python 3.10 был введён оператор match case для сопоставления с образцом (pattern matching). Он предоставляет более питоничный способ обработки множества условий без использования традиционных конструкций if-else.
Выше представлен пример использования оператора
match case
для сопоставления дней недели с задачами. Например, case 'monday'
срабатывает, если значение переменной day
равно 'monday'
, и возвращает 'learn Python'
.Подход с match-case более читаемый по сравнению с традиционным if, особенно при работе с большим числом условий
Ставь лайк если это полезно для тебя
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Создай своего первого AI-агента + MCP-сервер на Python
Вот всё, что тебе нужно, чтобы собрать своего первого AI-агента меньше чем за 20 минут.
О коде, который ты здесь увидишь:
> Используется Google ADK с Gemini Flash для запуска агента
> Агент подключается к MCP-серверу
> Он также использует два кастомных инструмента для выполнения задач
> Всё, что делает агент, можно отслеживать благодаря библиотеке Opik
Вот видео — можешь смотреть бесплатно.
А вот репозиторий на GitHub с кодом💯
👉 @PythonPortal
Вот всё, что тебе нужно, чтобы собрать своего первого AI-агента меньше чем за 20 минут.
О коде, который ты здесь увидишь:
> Используется Google ADK с Gemini Flash для запуска агента
> Агент подключается к MCP-серверу
> Он также использует два кастомных инструмента для выполнения задач
> Всё, что делает агент, можно отслеживать благодаря библиотеке Opik
Вот видео — можешь смотреть бесплатно.
А вот репозиторий на GitHub с кодом
Please open Telegram to view this post
VIEW IN TELEGRAM
Нужно создать XML с помощью Python? Попробуй модуль xml. 🐍
Я предпочитаю использовать
Функция
Затем создаём элементы:
> Appointments — корневой элемент
> subAppointment — дочерний элемент, добавляется к корню
Добавляем вложенный элемент:
В
Сериализация и запись в файл:
> Создаётся дерево ElementTree из корня.
> Файл открывается в бинарном режиме записи (wb).
> XML записывается в файл
Запускаем из консоли:
Если скрипт запущен напрямую — вызывается функция
В результате создаётся XML-файл:
Готовый и читаемый XML-документ😈
👉 @PythonPortal
Я предпочитаю использовать
ElementTree
, но в модуле xml есть и другие способы работы с XMLФункция
create_xml(filename):
создаёт XML-файл с заданным именем.def create_xml(filename):
Затем создаём элементы:
root = xml.Element("Appointments")
appt = xml.Element("subAppointment")
root.append(appt)
> Appointments — корневой элемент
> subAppointment — дочерний элемент, добавляется к корню
Добавляем вложенный элемент:
begin = xml.SubElement(appt, "begin")
begin.text = "1181251680"
В
subAppointment
добавляется подэлемент <begin>
, содержащий текст Сериализация и запись в файл:
tree = xml.ElementTree(root)
with open(filename, "wb") as fh:
tree.write(fh)
> Создаётся дерево ElementTree из корня.
> Файл открывается в бинарном режиме записи (wb).
> XML записывается в файл
Запускаем из консоли:
if __name__ == "__main__":
create_xml("appt.xml")
Если скрипт запущен напрямую — вызывается функция
create_xml
с именем выходного файла "appt.xml"В результате создаётся XML-файл:
<Appointments>
<subAppointment>
<begin>1181251680</begin>
</subAppointment>
</Appointments>
Готовый и читаемый XML-документ
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Нашёл классный инструмент для тех, кто работает с Pandas
Теперь можно автоматически профилировать DataFrame в Jupyter с помощью Pandas AutoProfiler
На выходе — распределение по колонкам, сводная статистика, данные по null-значениям, экспорт кода и т.д.
Всё работает автоматически — писать дополнительный код не нужно
Имба, влепи лайк если согласен⚔️
👉 @PythonPortal
Теперь можно автоматически профилировать DataFrame в Jupyter с помощью Pandas AutoProfiler
На выходе — распределение по колонкам, сводная статистика, данные по null-значениям, экспорт кода и т.д.
Всё работает автоматически — писать дополнительный код не нужно
Имба, влепи лайк если согласен
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Вот игра, с которой ты выучишь Python
Нет ничего лучше, чем писать код прямо внутри игры, чтобы понять, как работает программирование на практике.
CodeStrike — шутер + приключение + Python. Полностью бесплатно в Steam — но ограниченное время
Геймплей варьируется от примитивных задачек до настоящего хакерства камер и дверей. На борту автокомплит, пошаговый дебаг и три уровня сложности
Отличный способ учиться весело. Но, увы, мало кто знает. Наслаждайся✌️
👉 @PythonPortal
Нет ничего лучше, чем писать код прямо внутри игры, чтобы понять, как работает программирование на практике.
CodeStrike — шутер + приключение + Python. Полностью бесплатно в Steam — но ограниченное время
Геймплей варьируется от примитивных задачек до настоящего хакерства камер и дверей. На борту автокомплит, пошаговый дебаг и три уровня сложности
Отличный способ учиться весело. Но, увы, мало кто знает. Наслаждайся
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Code review больше никогда не будет прежним
CodeRabbit добавил бесплатные AI-ревью кода прямо в VS Code, Cursor и Windsurf.
Этот инструмент находит баги и проверяет твой код на ошибки всего за несколько секунд. Подводит итоги и анализирует Pull Request из твоего репозитория на GitHub или GitLab
Всё что нужно это открыть панель расширений в VS Code, Cursor или Windsurf, введите😈
👉 @PythonPortal
CodeRabbit добавил бесплатные AI-ревью кода прямо в VS Code, Cursor и Windsurf.
Этот инструмент находит баги и проверяет твой код на ошибки всего за несколько секунд. Подводит итоги и анализирует Pull Request из твоего репозитория на GitHub или GitLab
Всё что нужно это открыть панель расширений в VS Code, Cursor или Windsurf, введите
"CodeRabbit"
и нажмите Install
Please open Telegram to view this post
VIEW IN TELEGRAM
Удаление элементов из set в Python
В Python множества (set) поддерживают два метода удаления элементов: remove() и discard()
На изображении выше видно:
>
>
Оба метода удаляют элементы, но ведут себя по-разному при отсутствии значения.
Такой подход помогает гибко управлять логикой в зависимости от ситуации:
> нужно жёстко контролировать наличие элемента — используй remove()
> хочешь без лишних исключений — discard() в помощь
Ставь лайк, если разобрался🚶♀️
👉 @PythonPortal
В Python множества (set) поддерживают два метода удаления элементов: remove() и discard()
На изображении выше видно:
>
s.remove(4)
выбрасывает KeyError, если элемента нет>
s.discard(4)
просто молчит и продолжает работу дальшеОба метода удаляют элементы, но ведут себя по-разному при отсутствии значения.
remove()
— строго, discard()
— спокойноТакой подход помогает гибко управлять логикой в зависимости от ситуации:
> нужно жёстко контролировать наличие элемента — используй remove()
> хочешь без лишних исключений — discard() в помощь
Ставь лайк, если разобрался
Please open Telegram to view this post
VIEW IN TELEGRAM
Python Portal
ty — новый сверхбыстрый type checker для Python от Astral Анонсирован ty — проверщик типов и языковой сервер, написанный на Rust. В тестах он в 10–100 раз быстрее аналогов (на реальных проектах — до 600x быстрее Mypy 😳 ) Цель —> сделать лучшую цепочку инструментов…
Диагностика
Если ты ссылаешься на символ или модуль, который был добавлен в более новой версии Python, вам сообщат об этом, а также укажут, где и почему была выведена поддерживаемая версия Python😎
👉 @PythonPortal
ty
становится всё лучшеЕсли ты ссылаешься на символ или модуль, который был добавлен в более новой версии Python, вам сообщат об этом, а также укажут, где и почему была выведена поддерживаемая версия Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Вот репозиторий по основам PyTorch
Нет ничего лучше, чем разобраться в нейросетях на практике — тензоры, градиенты, обучение, всё по шагам в Jupyter.
Идеально, если хочешь вкатиться в AI — ссылка
Отличный репозиторий, но, увы, недооценён. Сохраняй♟
👉 @PythonPortal
Нет ничего лучше, чем разобраться в нейросетях на практике — тензоры, градиенты, обучение, всё по шагам в Jupyter.
Идеально, если хочешь вкатиться в AI — ссылка
Отличный репозиторий, но, увы, недооценён. Сохраняй
Please open Telegram to view this post
VIEW IN TELEGRAM
Вот бесплатный курс по изучению Python — 100-days-of-python
С практическими упражнениями и пошаговыми туториалами
Нет ничего лучше, чем писать код ежедневно на протяжении 100 дней, чтобы прочувствовать логику программирования на практике.
Интерактивный курс, который тебе реально нужно заценить. Не благодари😈
👉 @PythonPortal
С практическими упражнениями и пошаговыми туториалами
Нет ничего лучше, чем писать код ежедневно на протяжении 100 дней, чтобы прочувствовать логику программирования на практике.
Интерактивный курс, который тебе реально нужно заценить. Не благодари
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Python на сегодня:
С помощью
> Имя файла с расширением:
> Имя файла без расширения:
> Расширение файла:
> Родительский каталог:
👉 @PythonPortal
С помощью
pathlib
можно получить доступ к различным частям пути, таким как имя файла, расширение и родительский каталог. Это упрощает обработку и анализ файловых путей> Имя файла с расширением:
>>> path.name
'test.md'
> Имя файла без расширения:
>>> path.stem
'test'
> Расширение файла:
>>> path.suffix
'.md'
> Родительский каталог:
>>> path.parent
PosixPath('C:/Users')
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Вот четвёртый трюк с GitHub вам в копилку: просто замени 😎
Это меняет правила игры для быстрого понимания и навигации по проекту
👉 @PythonPortal
.com
на chat.ai
в URL любого репозитория — и ты сможешь напрямую общаться с кодом Это меняет правила игры для быстрого понимания и навигации по проекту
Please open Telegram to view this post
VIEW IN TELEGRAM
Анатомия Python-класса
Почти всё, что может содержать определение класса в Python — в одной картинке.
Удобный визуал, чтобы быстро освежить синтаксис и структуру💯
👉 @PythonPortal
Почти всё, что может содержать определение класса в Python — в одной картинке.
Удобный визуал, чтобы быстро освежить синтаксис и структуру
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Отслеживайте и оценивайте любое приложение на базе AI/LLM в 3 строки кода
> Инициализируйте объект оценки с помощью LangWatch (строка 3)
> Декорируйте метод рабочего процесса LLM (строка 5)
> Запишите результат оценки (строка 11)
Можно продолжать использовать Pandas и другие любимые инструменты.
Вы можете интегрировать оценки LangWatch в CI/CD-пайплайны, чтобы каждая новая версия модели автоматически проверялась перед деплоем.
Полностью с открытым исходным кодом → https://github.com/langwatch/langwatch😊
👉 @PythonPortal
> Инициализируйте объект оценки с помощью LangWatch (строка 3)
> Декорируйте метод рабочего процесса LLM (строка 5)
> Запишите результат оценки (строка 11)
Можно продолжать использовать Pandas и другие любимые инструменты.
Вы можете интегрировать оценки LangWatch в CI/CD-пайплайны, чтобы каждая новая версия модели автоматически проверялась перед деплоем.
Полностью с открытым исходным кодом → https://github.com/langwatch/langwatch
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Python: используйте
Пример:
Не нужно проверять наличие ключа.😈
С обычным dict:
Нужно вручную проверять наличие ключа и инициализировать список👀
👉 @PythonPortal
defaultdict
из модуля collections
, чтобы автоматически создавать значения для отсутствующих ключей. В отличие от обычного dict
, он не выбрасывает KeyError
Пример:
from collections import defaultdict
department_groups = defaultdict(list)
for name, department in employees:
department_groups[department].append(name)
Не нужно проверять наличие ключа.
defaultdict(list)
автоматически создаёт пустой список при первом обращении С обычным dict:
department_groups = {}
for name, department in employees:
if department in department_groups:
department_groups[department].append(name)
else:
department_groups[department] = [name]
Нужно вручную проверять наличие ключа и инициализировать список
defaultdict
делает код чище, короче и безопаснее при работе с вложенными структурами Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Datacamp открыл бесплатный доступ ко всем своим курсам на неделю
Что можно изучить:
> Python, Spark, анализ данных, data engineering
> Машинное обучение, Power BI и многое другое
> Практические проекты
> Сертификаты, которые можно добавить в резюме
Всё бесплатно на протяжении недели через DataCamp😡
👉 @PythonPortal
Что можно изучить:
> Python, Spark, анализ данных, data engineering
> Машинное обучение, Power BI и многое другое
> Практические проекты
> Сертификаты, которые можно добавить в резюме
Всё бесплатно на протяжении недели через DataCamp
Please open Telegram to view this post
VIEW IN TELEGRAM
Функция filter
Функция
Предположим, у вас есть список чисел, и вы хотите отфильтровать из него только чётные числа. Вы можете использовать функцию filter:
Результат:
Обратите внимание, что функция filter использует критерий, заданный функцией
Функция filter() — мощный инструмент для выбора элементов из итерируемых объектов на основе пользовательских условий. Ниже приведены другие способы использования функции filter() в коде:
Фильтрация строк по длине
Если у вас есть список строк, и вы хотите отфильтровать строки определённой длины, вы можете использовать функцию filter(). Предположим, вы хотите получить из списка только те строки, длина которых меньше 5 символов. Вот пример того, как это можно сделать:
Результат:
👉 @PythonPortal
Функция
filter()
используется для фильтрации элементов из итерируемого объекта на основе заданного условия. Она принимает два аргумента: функцию и итерируемый объект. Возвращает итератор, содержащий элементы, которые удовлетворяют условию.Предположим, у вас есть список чисел, и вы хотите отфильтровать из него только чётные числа. Вы можете использовать функцию filter:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
even_numbers
Результат:
[2, 4, 6, 8]
Обратите внимание, что функция filter использует критерий, заданный функцией
lambda
, чтобы отфильтровать чётные числа из списка numbers
. filter возвращает итератор, поэтому мы используем функцию list()
, чтобы извлечь чётные числа в виде списка.Функция filter() — мощный инструмент для выбора элементов из итерируемых объектов на основе пользовательских условий. Ниже приведены другие способы использования функции filter() в коде:
Фильтрация строк по длине
Если у вас есть список строк, и вы хотите отфильтровать строки определённой длины, вы можете использовать функцию filter(). Предположим, вы хотите получить из списка только те строки, длина которых меньше 5 символов. Вот пример того, как это можно сделать:
words = ["apple", "banana", "kiwi", "grape"]
# Функция, передаваемая в filter
def filter_words(x):
return x if len(x) < 5 else None
short_words = list(filter(filter_words, words))
print(short_words)
Результат:
['kiwi']
Please open Telegram to view this post
VIEW IN TELEGRAM
Структуры данных в Python
Это база, это знать надо🧠
LIST
> создаются с помощью синтаксиса:
> имеют методы, такие как:
> состоят из упорядоченных групп элементов
> итерируются циклами
ELEMENTS
> находятся по индексам
> могут быть изменены через присваивание:
> могут быть типов: int, string, list, …
INDEXES
> используют синтаксис:
> вперёд: от 0 до length-1
> назад: от -1 до -length
> нужны для присваивания
LOOPS
> проходят по списку последовательно
> часто используют идиомы, например:
TUPLES
> неизменяемы
👉 @PythonPortal
Это база, это знать надо
LIST
> создаются с помощью синтаксиса:
myList = []
> имеют методы, такие как:
.sort(), .append()
> состоят из упорядоченных групп элементов
> итерируются циклами
ELEMENTS
> находятся по индексам
> могут быть изменены через присваивание:
myList[ind] = x
> могут быть типов: int, string, list, …
INDEXES
> используют синтаксис:
myList[ind]
> вперёд: от 0 до length-1
> назад: от -1 до -length
> нужны для присваивания
LOOPS
> проходят по списку последовательно
> часто используют идиомы, например:
for elem in myList:
# делаем что-то
TUPLES
> неизменяемы
Please open Telegram to view this post
VIEW IN TELEGRAM
Изменение ключей словаря
Ключи словаря являются неизменяемыми. В Python не существует прямого способа изменить ключ словаря. Однако можно использовать метод
Допустим, мы хотим заменить ключ
Результат:
Как видно, ключ "school" был заменён на "university". Учтите, что данный процесс по сути создаёт новый ключ, сохраняя исходное значение🙂
👉 @PythonPortal
Ключи словаря являются неизменяемыми. В Python не существует прямого способа изменить ключ словаря. Однако можно использовать метод
pop()
для изменения или создания нового ключа со значением из существующего ключа.Допустим, мы хотим заменить ключ
"school"
на "university"
в приведённом ниже словаре. Первый шаг — использовать метод pop()
для удаления старого ключа и получения его значения. Второй шаг — создать новый ключ и присвоить ему значение удалённого ключа. Смотрите код ниже:# Исходный словарь
my_dict = {'school': 'Yale', 'age': 22}
# Шаг 1: Удалить старый ключ и получить его значение
old_value = my_dict.pop('school')
# Шаг 2: Создать новый ключ с нужным именем и присвоить значение
my_dict['university'] = old_value
print(my_dict)
Результат:
{'age': 22, 'university': 'Yale'}
Как видно, ключ "school" был заменён на "university". Учтите, что данный процесс по сути создаёт новый ключ, сохраняя исходное значение
Please open Telegram to view this post
VIEW IN TELEGRAM
Нашёл топчик для прокачки алгоритмов и структур данных
Курс "A First Course on Data Structures in Python" — интерактивная книга с кодом и объяснениями написанная Дональдом Р. Шихи, профессором компьютерных наук в North Carolina State University
> Всё на Python
> никакой воды
> Всё с примерами и тестами
> Отлично заходит после базового Python
Читаем и прокачиваем мозг бесплатно — тут📖
👉 @PythonPortal
Курс "A First Course on Data Structures in Python" — интерактивная книга с кодом и объяснениями написанная Дональдом Р. Шихи, профессором компьютерных наук в North Carolina State University
> Всё на Python
> никакой воды
> Всё с примерами и тестами
> Отлично заходит после базового Python
Читаем и прокачиваем мозг бесплатно — тут
Please open Telegram to view this post
VIEW IN TELEGRAM