58174
Всё самое интересное из мира Python Связь: @devmangx РКН: https://clck.ru/3GMMF6
Основатель школы автотестировщиков 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
Этот репозиторий на GitHub настоящая находка для каждого дата-сайентиста
DS Interactive Python — это репозиторий с интерактивными дашбордами для изучения статистики, моделей машинного обучения и других концепций Data Science.
Темы включают: PCA, бэггинг и бустинг, кластеризацию, нейронные сети и др.
Полностью open-source и бесплатен 😮
👉 @PythonPortal
Совет по Python:
Использование setdefault
Метод setdefault() позволяет заменить 4 строки традиционного кода, избавляя от необходимости использовать условие if и ручную инициализацию.setdefault() чётко передаёт намерение: «Если ключ отсутствует, установить для него пустой список. Затем добавить элемент в список». Это одновременно делает код короче и понятнее
Есть ли причины использовать это вместо collections.defaultdict? 🤔
setdefault можно указывать разное значение по умолчанию при каждом вызове, тогда как у defaultdict одно общее значение для всех отсутствующих ключей. Метод setdefault также удобен тем, что не требует импорта =)
ТОП‑7 расширений для прокачки VSCode, Cursor и Windsurf: 📝
① Console Ninja
Показывает вывод консоли прямо в редакторе
② Error Lens
Выводит ошибки линтера и компиляции прямо в строке кода
③ Image Preview
Показывает превью изображений при наведении курсора
④ REST Client
Позволяет делать HTTP‑запросы и получать ответы прямо в редакторе
⑤ Version Lens
Управление версиями и обновление зависимостей из package.json и не только
⑥ Highlight on Copy
Мерцающая подсветка скопированного текста - видно, что именно ты скопировал
⑦ Symbols
Лучшая подборка иконок для типов файлов - делает интерфейс визуально чище
👉 @PythonPortal
Совет по чистому коду на Python:
Проверяйте качество кода внутри CI-пайплайна с помощью этих библиотек:
• flake8 — контроль соблюдения стиля (PEP8)
• black — автоформатирование кода
• isort — сортировка и оптимизация импортов
• bandit — анализ кода на уязвимости безопасности
• safety — проверка зависимостей на известные уязвимости
👉 @PythonPortal
🔍Тестовое собеседование на Python-бекендера с разработчиком из Avito во вторник
17 июня(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
📂 Даня, разработчик из Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqvB1CC6
Это находка дня: Code2Tutorial
Он позволяет мгновенно превратить любой репозиторий на GitHub в чистый, интерактивный туториал.
Просто вставь ссылку на репо → получи структурированное обучение 😱
👉 @PythonPortal
Совет по 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')
datetime.datetime(2024, 6, 18, 12, 34, 56, 789123)
Python включает очень полезную библиотеку difflib. С её помощью можно находить наиболее похожие строки в списке строк.
Вот пример:
words = ["apple", "ape", "appeal", "par", "parade"]
difflib.get_close_matches("appel", words)['appeal', 'apple', 'ape']difflib.get_close_matches("pa", words) ['par']difflib.get_close_matches("par", words) ['par', 'parade']
Изменение ключей словаря
Ключи словаря являются неизменяемыми. В 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'}
Функция 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]
lambda, чтобы отфильтровать чётные числа из списка numbers. filter возвращает итератор, поэтому мы используем функцию list(), чтобы извлечь чётные числа в виде списка.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']
Совет по 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) автоматически создаёт пустой список при первом обращении 😈department_groups = {}
for name, department in employees:
if department in department_groups:
department_groups[department].append(name)
else:
department_groups[department] = [name]defaultdict делает код чище, короче и безопаснее при работе с вложенными структурами
Анатомия Python-класса
Почти всё, что может содержать определение класса в Python — в одной картинке.
Удобный визуал, чтобы быстро освежить синтаксис и структуру 💯
👉 @PythonPortal
Совет по Python на сегодня:
С помощью pathlib можно получить доступ к различным частям пути, таким как имя файла, расширение и родительский каталог. Это упрощает обработку и анализ файловых путей
> Имя файла с расширением:
>>> path.name
'test.md'
>>> path.stem
'test'
>>> path.suffix
'.md'
>>> path.parent
PosixPath('C:/Users')
Вот репозиторий по основам PyTorch
Нет ничего лучше, чем разобраться в нейросетях на практике — тензоры, градиенты, обучение, всё по шагам в Jupyter.
Идеально, если хочешь вкатиться в AI — ссылка
Отличный репозиторий, но, увы, недооценён. Сохраняй ♟
👉 @PythonPortal
Совет по Python:
Используйте команду poetry show --tree --why [package], чтобы отследить, откуда берётся пакет.
Она быстро показывает:
> какие пакеты от него зависят
> почему пакет был установлен
На примере показано, как команда
poetry show --tree --why pydantic
pyproject.toml или при разрешении конфликтов транзитивных зависимостей. 📝
🚴♂️Не надо изобретать велосипед
Главная ошибка стартаперов — пытаться сделать идеальный продукт, годами его дорабатывать, но так и не выпустить.
В своём канале я запустил челлендж: 12 проектов за 12 месяцев.
1️⃣ Ищем идею под существующий спрос (не из головы!)
2️⃣ Разрабатываем продукт
3️⃣ Занимаемся бесплатным продвижением
4️⃣ Оптимизируем и масштабируем
Формула проста:
1 запуск = 1 функция = решение 1 проблемы
Три главных правила:
✔️ Только проверенный спрос — через поисковые запросы, а не догадки.
✔️ Быстрый запуск — никакого перфекционизма.
✔️ Только США и ЕС — там платят за удобство.
Также в канале разбираю:
— Кто и зачем будет платить за микро-продукт?
— Главная ошибка начинающих стартаперов
— Микро-продукт vs стартап
— Как бесплатно продвигать продукт
Короче, рассказываю в канале без купюр: что работает, а что нет, сколько приносит и как продвигаем. Всё, что обычно скрывают.
Вы можете выполнить uv add --script /path/to/script.py, чтобы добавить встроенные зависимости в Python-скрипт. Если заголовок скрипта ещё не существует, uv сгенерирует его автоматически
Команда uv run http://script.py выполнит скрипт со всеми необходимыми зависимостями.
Не нужно создавать виртуальное окружение, устанавливать пакеты и т.д. ☺️
👉 @PythonPortal
VK Weekend Offer: отправьте заявку, пройдите интервью и получите офер!
28–29 июня VK проведёт Weekend Offer для бэкендеров с опытом от трёх лет. Участников со знанием Java, Go, Python или C++ ждут технические собеседования, знакомство с продуктами и, если всё сложится, офер уже в конце выходных.
Ребята много лет создают облачные решения, системы рекомендаций и поисковые движки — всё с миллионами пользователей в проде — и сейчас ищут новых коллег. Поэтому оставляйте заявку до 25 июня, чтобы попасть в команду за выходные!
Подробности — на сайте.
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-кода
Это CLI-утилита, которая автоматически сканирует исходники на уязвимости
Анализирует:
– небезопасные импорты
– инъекции
– проблемы с сериализацией
– утечки секретов и т.д.
Подходит для CI/CD пайплайнов и ревью кода.
Интеграция простая, работает быстро —> bandit ❤️
👉 @PythonPortal
🌐 WAICORE — хостинг, за который не надо переживать
Устали от лагов, сложных панелей и переплат? Переходите на VPS с AMD Ryzen 9 — быстро, просто, без нервов.
💬 Почему клиенты выбирают нас:
— Цена начинается от 2€
— Скорость канала до 10 Гбит/с
— Поддержка 24/7 — отвечаем быстро и без шаблонов
☀Приятный бонус: Бесплатный VPN — расширение для браузера в подарок каждому нашему юзеру
VPN | Расширение для браузера
📍 Локации: Германия (Франкфурт), Москва, Нидерланды (уже скоро) — стабильный пинг, DDoS-защита.
🔥 Успейте сегодня
⤵ Выбрать сервер | 💬 Наш канал
У CISCO есть 2 курса по Python полностью БЕСПЛАТНО
На английском языке и разработаны для получения официальных сертификатов Python Institute.
Содержат практические проекты и много часов учебного контента: начать 😡
👉 @PythonPortal
Нашёл топчик для прокачки алгоритмов и структур данных
Курс "A First Course on Data Structures in Python" — интерактивная книга с кодом и объяснениями написанная Дональдом Р. Шихи, профессором компьютерных наук в North Carolina State University
> Всё на Python
> никакой воды
> Всё с примерами и тестами
> Отлично заходит после базового Python
Читаем и прокачиваем мозг бесплатно — тут 📖
👉 @PythonPortal
Структуры данных в 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:
# делаем что-то
Datacamp открыл бесплатный доступ ко всем своим курсам на неделю
Что можно изучить:
> Python, Spark, анализ данных, data engineering
> Машинное обучение, Power BI и многое другое
> Практические проекты
> Сертификаты, которые можно добавить в резюме
Всё бесплатно на протяжении недели через DataCamp 😡
👉 @PythonPortal
Отслеживайте и оценивайте любое приложение на базе AI/LLM в 3 строки кода
> Инициализируйте объект оценки с помощью LangWatch (строка 3)
> Декорируйте метод рабочего процесса LLM (строка 5)
> Запишите результат оценки (строка 11)
Можно продолжать использовать Pandas и другие любимые инструменты.
Вы можете интегрировать оценки LangWatch в CI/CD-пайплайны, чтобы каждая новая версия модели автоматически проверялась перед деплоем.
Полностью с открытым исходным кодом → https://github.com/langwatch/langwatch 😊
👉 @PythonPortal
Вот четвёртый трюк с GitHub вам в копилку: просто замени .com на chat.ai в URL любого репозитория — и ты сможешь напрямую общаться с кодом 😎
Это меняет правила игры для быстрого понимания и навигации по проекту
👉 @PythonPortal
Вот бесплатный курс по изучению Python — 100-days-of-python
С практическими упражнениями и пошаговыми туториалами
Нет ничего лучше, чем писать код ежедневно на протяжении 100 дней, чтобы прочувствовать логику программирования на практике.
Интерактивный курс, который тебе реально нужно заценить. Не благодари 😈
👉 @PythonPortal
Диагностика ty становится всё лучше
Если ты ссылаешься на символ или модуль, который был добавлен в более новой версии Python, вам сообщат об этом, а также укажут, где и почему была выведена поддерживаемая версия Python 😎
👉 @PythonPortal