pythonportal | Unsorted

Telegram-канал pythonportal - Python Portal

32662

Присоединяйтесь к нашему каналу и погрузитесь в мир для Python-разработчика Связь: @devmangx РКН: https://clck.ru/3GMMF6

Subscribe to a channel

Python Portal

Аналогично Unix-пайпам, в Python можно строить цепочки функций, переопределяя метод __or__

Это позволяет связывать операции так, что вывод одной функции становится входом для следующей → чисто, читаемо и удобно для композиции

Именно так LangChain реализует элегантные пайплайны вроде: chat_prompt | groq_model | output_parser

Пример:

class Pipe:
def __init__(self, func):
self.func = func

def __call__(self, x):
return self.func(x)

def __or__(self, other):
return self.__class__(lambda x: other(self(x)))


🔸Pipe — обёртка над функцией

🔸__or__ (|) позволяет комбинировать пайпами, как в Unix

🔸__call__ делает объект вызываемым, как обычную функцию

Теперь можно обернуть любые функции в Pipe и комбинировать их в цепочку:

double = Pipe(lambda x: x * 2)
square = Pipe(lambda x: x ** 2)

pipeline = double | square
print(pipeline(3)) # (3 * 2) ** 2 = 36


👉 @PythonPortal

Читать полностью…

Python Portal

Конструкции в Python, использующие блок else:

🔸Условный оператор if-else

🔸Цикл for-else

🔸Цикл while-else

🔸Блок try-except-else

На фото мы видим 4 примера:

1. проверяет условие. Если x < 5 — выполняется if, иначе — else

2. Цикл ищет i == 10. Не находит, break не срабатывает → выполняется else

> Блок else выполняется только если цикл не прерван через break

3. Цикл отрабатывает до конца, else выполняется после завершения while

> else не выполнится, если внутри цикла будет break

4. Пытается выполнить 10 / 2. Исключения нет — срабатывает else

> else выполняется только если не было исключений в try

👉 @PythonPortal

Читать полностью…

Python Portal

Ищем новичков во фронтенд-разработке и вёрстке сайтов.

Хотим помочь тебе собрать сайт, как полноценный заказ даже если ты никогда не кодил.

А именно:

- Сверстать веб-сайт на HTML + CSS;
- Реализовать функционал на JavaScript;
- Пощупать фронтенд-фреймворк Angular;
- Подключить Backend и загрузить сайт на хостинг;
- Использовать ChatGPT и Giga, как профи.

+ Помощь куратора на каждом этапе.

Чтобы в итоге ты своими руками разработал качественный сайт, который не стыдно добавить в портфолио или продать.

Такой опыт можно получить на бесплатном практикуме за 7 дней.

👉 Приходи на бесплатное обучение и зови с собой друзей

Бонусом получишь гайд для поиска работы и заказов на фронтенд-разработку.

Читать полностью…

Python Portal

Если хочешь стать скилловым бэкенд-разработчиком, то пили как можно больше проектов.

В этом курсе их три: генератор блогов, клон Netflix и клон Spotify.

Прокачаешь бэкенд на практике с Python, Django и PostgreSQL 😄

👉 @PythonPortal

Читать полностью…

Python Portal

Совет по Python:

Используйте команду poetry show --tree --why [package], чтобы отследить, откуда берётся пакет.

Она быстро показывает:

> какие пакеты от него зависят
> почему пакет был установлен

На примере показано, как команда

poetry show --tree --why pydantic


помогает понять, почему библиотека pydantic присутствует в проекте и кто её тянет в зависимости.

Это очень полезно перед очисткой pyproject.toml или при разрешении конфликтов транзитивных зависимостей. 📝

👉 @PythonPortal

Читать полностью…

Python Portal

🚴‍♂️Не надо изобретать велосипед

Главная ошибка стартаперов — пытаться сделать идеальный продукт, годами его дорабатывать, но так и не выпустить.

В своём канале я запустил челлендж: 12 проектов за 12 месяцев.

1️⃣ Ищем идею под существующий спрос (не из головы!)
2️⃣ Разрабатываем продукт
3️⃣ Занимаемся бесплатным продвижением
4️⃣ Оптимизируем и масштабируем

Формула проста:
1 запуск = 1 функция = решение 1 проблемы

Три главных правила:
✔️ Только проверенный спрос — через поисковые запросы, а не догадки.
✔️ Быстрый запуск — никакого перфекционизма.
✔️ Только США и ЕС — там платят за удобство.

Также в канале разбираю:
Кто и зачем будет платить за микро-продукт?
Главная ошибка начинающих стартаперов
Микро-продукт vs стартап
Как бесплатно продвигать продукт

Короче, рассказываю в канале без купюр: что работает, а что нет, сколько приносит и как продвигаем. Всё, что обычно скрывают.

Читать полностью…

Python Portal

Вы можете выполнить uv add --script /path/to/script.py, чтобы добавить встроенные зависимости в Python-скрипт. Если заголовок скрипта ещё не существует, uv сгенерирует его автоматически

Команда uv run http://script.py выполнит скрипт со всеми необходимыми зависимостями.
Не нужно создавать виртуальное окружение, устанавливать пакеты и т.д. ☺️

👉 @PythonPortal

Читать полностью…

Python Portal

VK Weekend Offer: отправьте заявку, пройдите интервью и получите офер!

28–29 июня VK проведёт Weekend Offer для бэкендеров с опытом от трёх лет. Участников со знанием Java, Go, Python или C++ ждут технические собеседования, знакомство с продуктами и, если всё сложится, офер уже в конце выходных.

Ребята много лет создают облачные решения, системы рекомендаций и поисковые движки — всё с миллионами пользователей в проде — и сейчас ищут новых коллег. Поэтому оставляйте заявку до 25 июня, чтобы попасть в команду за выходные!

Подробности — на сайте.

Читать полностью…

Python Portal

12 мощных инструментов для ваших ИИ-агентов

Вот краткое описание функций каждого из них

1. FileReadTool

Этот инструмент мгновенно извлекает данные из локальной файловой системы.

2. FileWriterTool

Позволяет агенту создавать или перезаписывать любые файлы.

3. CodeInterpreterTool

Мощный инструмент для выполнения кода на Python 3 в защищённой, изолированной среде

4. ScrapeWebsiteTool

Инструмент, предназначенный для извлечения и чтения содержимого указанного веб-сайта.

5. SerperDevTool

Позволяет агенту выполнять поиск в Google.

6. DirectoryReadTool

Позволяет агенту получать список содержимого папок и метаданные. Полезно для реализации RAG на основе файловой системы.

7. FirecrawlSearchTool

Инструмент, предназначенный для поиска по веб-сайтам и преобразования их содержимого в чистый Markdown или структурированные данные, пригодные для обработки агентами или языковыми моделями (LLM).

8. BrowserbaseLoadTool

Browserbase — это платформа для разработчиков, предназначенная для надёжного запуска, управления и мониторинга безголовых браузеров.

Этот инструмент позволяет запускать сессии безголового Chrome, которыми может управлять агент.

9. PDFSearchTool

Семантический RAG (извлечение и генерация с подсказками) по PDF-документам.

10. GithubSearchTool

Предоставляет агентам доступ к GitHub и возможность выполнять RAG по исходному коду.

11. TXTSearchTool

Молниеносное встраивание и поиск по текстовым файлам.

12. L2SQLTool

Инструмент Text2SQL, преобразующий естественный язык в SQL-запросы для поиска по структурированным базам данных.

👉 @PythonPortal

Читать полностью…

Python Portal

Нашёл годный инструмент для анализа безопасности Python-кода

Это CLI-утилита, которая автоматически сканирует исходники на уязвимости

Анализирует:

– небезопасные импорты
– инъекции
– проблемы с сериализацией
– утечки секретов и т.д.

Подходит для CI/CD пайплайнов и ревью кода.

Интеграция простая, работает быстро —> bandit ❤️

👉 @PythonPortal

Читать полностью…

Python Portal

🌐 WAICORE — хостинг, за который не надо переживать

Устали от лагов, сложных панелей и переплат? Переходите на VPS с AMD Ryzen 9 — быстро, просто, без нервов.

💬 Почему клиенты выбирают нас:
— Цена начинается от 2€
— Скорость канала до 10 Гбит/с
— Поддержка 24/7 — отвечаем быстро и без шаблонов

Приятный бонус: Бесплатный VPN — расширение для браузера в подарок каждому нашему юзеру

VPN | Расширение для браузера

📍 Локации: Германия (Франкфурт), Москва, Нидерланды (уже скоро) — стабильный пинг, DDoS-защита.

🔥 Успейте сегодня
Выбрать сервер | 💬 Наш канал

Читать полностью…

Python Portal

У CISCO есть 2 курса по Python полностью БЕСПЛАТНО

На английском языке и разработаны для получения официальных сертификатов Python Institute.

Содержат практические проекты и много часов учебного контента: начать 😡

👉 @PythonPortal

Читать полностью…

Python Portal

Нашёл топчик для прокачки алгоритмов и структур данных

Курс "A First Course on Data Structures in Python" — интерактивная книга с кодом и объяснениями написанная Дональдом Р. Шихи, профессором компьютерных наук в North Carolina State University

> Всё на Python
> никакой воды
> Всё с примерами и тестами
> Отлично заходит после базового Python

Читаем и прокачиваем мозг бесплатно — тут 📖

👉 @PythonPortal

Читать полностью…

Python Portal

Структуры данных в Python

Это база, это знать надо 🧠

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

> неизменяемы

👉 @PythonPortal

Читать полностью…

Python Portal

Datacamp открыл бесплатный доступ ко всем своим курсам на неделю

Что можно изучить:

> Python, Spark, анализ данных, data engineering
> Машинное обучение, Power BI и многое другое
> Практические проекты
> Сертификаты, которые можно добавить в резюме

Всё бесплатно на протяжении недели через DataCamp 😡

👉 @PythonPortal

Читать полностью…

Python Portal

Наткнулся на библиотеку art — делает ASCII-арт из текста за секунды.

Простая установка:

pip install art


Пример использования:

from art import text2art

Art = text2art("art") # шрифт по умолчанию
print(Art)

# Пример вывода:
# _
# __ _ _ __ | |_
# / _` || '__|| __|
# | (_| || | | |_
# \__,_||_| \__|

Art_block = text2art("art", font='block', chr_ignore=True)
print(Art_block)

# Выведет крупный блок‑текст


Идеально для приветственных страничек или добавить декоративный вывод в CLI или логах 😊

👉 @PythonPortal

Читать полностью…

Python Portal

Если хочешь вкатиться в ML, а не просто читать теорию, начинай с практики прямо в браузере.

В этом курсе всё: туториалы, Colab-ноутбуки и реальные примеры.

Будешь тренировать модели на Python с TensorFlow, визуализировать в TensorBoard и деплоить хоть в браузер, хоть на сервер.

Подходит и для новичков, и для тех, кто уже пробовал Keras или NumPy 😊

👉 @PythonPortal

Читать полностью…

Python Portal

Возможность Python, которую часто недооценивают -> операции над множествами

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

Очистка и приведение к множествам:

existing = {t for tag in old_tags if (t := tag.strip())}
incoming = {t for tag in new_tags if (t := tag.strip())}


🔸tag.strip() удаляет пробелы с начала и конца строки.

🔸t := tag.strip() сохраняет очищенное значение в переменную t.

🔸if (t := tag.strip()) фильтрует пустые строки ("").

Удаление существующих тегов:

updated = existing - incoming
print("Removed tags:", updated)


Добавление новых тегов (без дубликатов):

updated = existing | incoming
print("Added tags:", updated)


👉 @PythonPortal

Читать полностью…

Python Portal

Основатель школы автотестировщиков QA.GURU проводит бесплатный интенсив «Из баг-репортов до первого автотеста на Python»

🔜 Во вторник, 24 июня, в 12:00 по МСК. Бесплатно.

Вы начинающий автоматизатор или ручной тестировщик? Займите место сейчас

За несколько часов опытный инженер объяснит, как написать и запустить автотест 🤓

Что сделаете за занятие:

— Напишете свой автотест на Python с нуля.
— Настроите рабочую среду за 10 минут (и она реально будет работать).
— Разберётесь, когда использовать Selenium, Playwright или Selene.
— Запустите автотест с Pytest и без него.

И совсем немного о трендах QA:

— Зачем компаниям QA, которые умеют писать код.
— Python + автотесты как минимальный входной билет в индустрию.
— Нейросети: конкурент или ассистент?

Станислав Васенков, основатель школы — в прошлом — Head of QAA pflb.ru, автор allure-notifications, победитель хакатона от EPAM, спикер Heisenbug.

Занять место

Реклама. Рекламодатель: ИП Васенков Станислав Олегович, ИНН 774335827403, erid: 2Vtzqw51r9U

Читать полностью…

Python Portal

Этот репозиторий на GitHub настоящая находка для каждого дата-сайентиста

DS Interactive Python — это репозиторий с интерактивными дашбордами для изучения статистики, моделей машинного обучения и других концепций Data Science.

Темы включают: PCA, бэггинг и бустинг, кластеризацию, нейронные сети и др.

Полностью open-source и бесплатен 😮

👉 @PythonPortal

Читать полностью…

Python Portal

Совет по Python:

Использование setdefault

Метод setdefault() позволяет заменить 4 строки традиционного кода, избавляя от необходимости использовать условие if и ручную инициализацию.

setdefault() чётко передаёт намерение: «Если ключ отсутствует, установить для него пустой список. Затем добавить элемент в список». Это одновременно делает код короче и понятнее

Есть ли причины использовать это вместо collections.defaultdict? 🤔


Хороший вопрос. Думаю, основное различие в том, что с setdefault можно указывать разное значение по умолчанию при каждом вызове, тогда как у defaultdict одно общее значение для всех отсутствующих ключей. Метод setdefault также удобен тем, что не требует импорта =)

👉 @PythonPortal

Читать полностью…

Python Portal

ТОП‑7 расширений для прокачки VSCode, Cursor и Windsurf: 📝

① Console Ninja
Показывает вывод консоли прямо в редакторе

② Error Lens
Выводит ошибки линтера и компиляции прямо в строке кода

③ Image Preview
Показывает превью изображений при наведении курсора

④ REST Client
Позволяет делать HTTP‑запросы и получать ответы прямо в редакторе

⑤ Version Lens
Управление версиями и обновление зависимостей из package.json и не только

⑥ Highlight on Copy
Мерцающая подсветка скопированного текста - видно, что именно ты скопировал

⑦ Symbols
Лучшая подборка иконок для типов файлов - делает интерфейс визуально чище

👉 @PythonPortal

Читать полностью…

Python Portal

Совет по чистому коду на Python:

Проверяйте качество кода внутри CI-пайплайна с помощью этих библиотек:

flake8 — контроль соблюдения стиля (PEP8)
black — автоформатирование кода
isort — сортировка и оптимизация импортов
bandit — анализ кода на уязвимости безопасности
safety — проверка зависимостей на известные уязвимости

👉 @PythonPortal

Читать полностью…

Python Portal

🔍Тестовое собеседование на Python-бекендера с разработчиком из Avito во вторник

17 июня(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.

Как это будет:
📂 Даня, разработчик из Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot

Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqvB1CC6

Читать полностью…

Python Portal

Это находка дня: Code2Tutorial

Он позволяет мгновенно превратить любой репозиторий на GitHub в чистый, интерактивный туториал.

Просто вставь ссылку на репо → получи структурированное обучение 😱

👉 @PythonPortal

Читать полностью…

Python Portal

Совет по Python:

В datetime.strptime() используйте "%f" для разбора микросекунд

from datetime import datetime

dt = datetime.strptime('2024-06-18 12:34:56.789123', '%Y-%m-%d %H:%M:%S.%f')


🔸'%Y-%m-%d %H:%M:%S.%f' — формат строки:

> %Y — год (4 цифры)
> %m — месяц
> %d — день
> %H — часы (24ч)
> %M — минуты
> %S — секунды
> %f — микросекунды

Результат:


datetime.datetime(2024, 6, 18, 12, 34, 56, 789123)


То есть строка успешно преобразована в объект datetime со всеми компонентами, включая микросекунды.

Это полезно, когда нужно точно работать с временными метками в логах, метриках, или временных рядах 💩

👉 @PythonPortal

Читать полностью…

Python Portal

Python включает очень полезную библиотеку difflib. С её помощью можно находить наиболее похожие строки в списке строк.

Вот пример:


words = ["apple", "ape", "appeal", "par", "parade"]


это список строк, среди которых ищем похожие.

difflib.get_close_matches("appel", words)


Ищет строки, похожие на "appel". Вернёт: ['appeal', 'apple', 'ape']
→ По степени схожести.

difflib.get_close_matches("pa", words)


Ищет похожие на "pa". Вернёт: ['par']

difflib.get_close_matches("par", words)


Ищет похожие на "par". Вернёт: ['par', 'parade']
→ parade похожа по началу.

👉 @PythonPortal

Читать полностью…

Python Portal

Изменение ключей словаря

Ключи словаря являются неизменяемыми. В 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". Учтите, что данный процесс по сути создаёт новый ключ, сохраняя исходное значение 🙂

👉 @PythonPortal

Читать полностью…

Python Portal

Функция filter

Функция 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']


👉 @PythonPortal

Читать полностью…

Python Portal

Совет по Python: используйте 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 делает код чище, короче и безопаснее при работе с вложенными структурами

👉 @PythonPortal

Читать полностью…
Subscribe to a channel