pythonportal | Unsorted

Telegram-канал pythonportal - Python Portal

58174

Всё самое интересное из мира Python Связь: @devmangx РКН: https://clck.ru/3GMMF6

Subscribe to a channel

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

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

Python Portal

Анатомия Python-класса

Почти всё, что может содержать определение класса в Python — в одной картинке.

Удобный визуал, чтобы быстро освежить синтаксис и структуру 💯

👉 @PythonPortal

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

Python Portal

Совет по Python на сегодня:

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

> Имя файла с расширением:

>>> path.name
'test.md'


> Имя файла без расширения:

>>> path.stem
'test'


> Расширение файла:

>>> path.suffix
'.md'


> Родительский каталог:

>>> path.parent
PosixPath('C:/Users')


👉 @PythonPortal

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

Python Portal

Вот репозиторий по основам PyTorch

Нет ничего лучше, чем разобраться в нейросетях на практике — тензоры, градиенты, обучение, всё по шагам в Jupyter.

Идеально, если хочешь вкатиться в AI — ссылка

Отличный репозиторий, но, увы, недооценён. Сохраняй

👉 @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

Отслеживайте и оценивайте любое приложение на базе AI/LLM в 3 строки кода

> Инициализируйте объект оценки с помощью LangWatch (строка 3)

> Декорируйте метод рабочего процесса LLM (строка 5)

> Запишите результат оценки (строка 11)

Можно продолжать использовать Pandas и другие любимые инструменты.

Вы можете интегрировать оценки LangWatch в CI/CD-пайплайны, чтобы каждая новая версия модели автоматически проверялась перед деплоем.

Полностью с открытым исходным кодом → https://github.com/langwatch/langwatch 😊

👉 @PythonPortal

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

Python Portal

Вот четвёртый трюк с GitHub вам в копилку: просто замени .com на chat.ai в URL любого репозитория — и ты сможешь напрямую общаться с кодом 😎

Это меняет правила игры для быстрого понимания и навигации по проекту

👉 @PythonPortal

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

Python Portal

Вот бесплатный курс по изучению Python — 100-days-of-python

С практическими упражнениями и пошаговыми туториалами

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

Интерактивный курс, который тебе реально нужно заценить. Не благодари 😈

👉 @PythonPortal

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

Python Portal

Диагностика ty становится всё лучше

Если ты ссылаешься на символ или модуль, который был добавлен в более новой версии Python, вам сообщат об этом, а также укажут, где и почему была выведена поддерживаемая версия Python 😎

👉 @PythonPortal

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