Python Portal
58.6K subscribers
2.04K photos
182 videos
49 files
577 links
Всё самое интересное из мира Python

Связь: @devmangx

РКН: https://clck.ru/3GMMF6
Download Telegram
Худшие 3 однострочника в Python, которых стоит избегать

1. List comprehension для побочных эффектов

data = [print(i**2) for i in range(100) if i % 2 == 0]


List comprehension создаёт список, а не «побочки». В итоге получаем непонятный список из None.

2. Сжатие функции в одну строчку

def f(a, b=1): return a * b if a > 0 else a + b


Формально это работает, но даже простая логика становится хуже читаемой.

3. Безумие с точками с запятой

a = 1; b = 2; c = a + b; print(c * 2 ** a + b)


Пихать всё в одну строчку через ; это убийство читаемости. Разбей на несколько строк, и всем станет легче.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3818
This media is not supported in your browser
VIEW IN TELEGRAM
Учись программировать, играя

Codédex выпустили новую версию своей платформы

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

То, что они сделали это реально круто 😦

Думаю, самое простое что можно сделать — поддержать их запуск на Product Hunt, оставив голос

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
37👍13👀4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁498🤣6
Я давно знал про dict.fromkeys в Python

Но только сегодня узнал, что можно задать значение по умолчанию для всех ключей

Я думал, что всегда нужно инициализировать словарь так, чтобы все ключи указывали на None 🌟

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
44👍15🔥9
Media is too big
VIEW IN TELEGRAM
Эта библиотека реально взлетит, и вот почему

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

Она open-source, и чтобы её запустить, достаточно пары строк кода.

Смотри видео с примером

GitHub: emcie-co/parlant

Каждая компания, либо уже делает, либо использует чат-бота. Эта библиотека может заменить тонны кода и при этом дать куда более качественный результат. 🌼

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
24🔥4👍2🤣1
image_2025-08-17_09-32-25.png
983.2 KB
Шпаргалка для собеседования по Python

1. Swap переменных без временной

a, b = 5, 10
a, b = b, a


2. Однострочный if-else (тернарный)

result = "Even" if x % 2 == 0 else "Odd"


3. List Comprehension

squares = [x**2 for x in range(10)]
evens = [x for x in range(10) if x % 2 == 0]


4. Set и Dict Comprehension

unique = {x for x in [1,2,2,3]}        # удалить дубликаты
squares = {x: x**2 for x in range(5)} # dict comprehension


5. Наиболее частый элемент в списке

from collections import Counter
most_common = Counter(['a','b','a','c']).most_common(1)[0][0]


6. Объединение словарей (Python 3.9+)

a = {'x': 1}
b = {'y': 2}
merged = a | b


7. Возврат нескольких значений

def stats(x):
return max(x), min(x), sum(x)

high, low, total = stats([1, 2, 3])


8. Использование zip для итерации по двум спискам

names = ['a', 'b']
scores = [90, 85]

for n, s in zip(names, scores):
print(f"{n}: {s}")


9. «Выпрямление» вложенных списков

nested = [[1,2], [3,4]]
flat = [item for sublist in nested for item in sublist]


10. Значения по умолчанию в словаре

from collections import defaultdict
d = defaultdict(int)
d['apple'] += 1 # без KeyError


11. Лямбда в одну строку

square = lambda x: x**2
print(square(4))


12. enumerate с индексом

for i, v in enumerate(['a', 'b', 'c']):
print(i, v)


13. Сортировка по ключу или значению

d = {'a': 3, 'b': 1, 'c': 2}
sorted_by_val = sorted(d.items(), key=lambda x: x[1])


14. Чтение строк файла в список

with open('file.txt') as f:
lines = f.read().splitlines()


15. Type Hints

def add(x: int, y: int) -> int:
return x + y



👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4921🔥10😁1
База

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁101🤣27👍6👀31🔥1🤔1
Нашел на Хабре годную статью 👧

Там показано, как собрать своего оффлайн голосового AI-ассистента всего за вечер

Микрофон слушает тебя, Whisper переводит речь в текст, локальная LLM отвечает, а gTTS всё это озвучивает

Полностью кастомный и без интернета

Код и гайд тут — Habr
Репо: тут

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3713🔥4
Автоформатирование текста с помощью textwrap

В Python есть модуль textwrap, который упрощает работу с длинными строками. Он автоматически разбивает текст на заданную ширину, чтобы он выглядел аккуратно и легко читался, будь то вывод в консоли, логи или отчёты.

Пример кода:

import textwrap

text = "Python — универсальный язык, который подходит для веба, анализа данных, автоматизации и многого другого."
result = textwrap.fill(text, width=40)

print(result)


Вывод:

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


Когда пригодится?

- автоматический перенос строк
- форматирование текста в CLI-программах
- подготовка читаемых логов, email или документации

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27👍96
PyTorch против TensorFlow — новое исследование расставило точки над i

PyTorch → примерно на 25% быстрее в обучении и на ~78% быстрее в инференсе. Проще для ресёрча

TensorFlow → сильнее в продакшене (мобилки, браузер, сервера)

Полный обзор читай тут

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
35👍6🤝1
Аргумент

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥75😁46🤝52💊2🌚1
photo_2025-08-19_07-28-17.jpg
186.3 KB
Шпаргалка по регулярным выражениям

В ней собрано, как работают якори, классы символов, кванторы, диапазоны, утверждения, спецсимволы, модификаторы и подстановки, плюс примеры готовых шаблонов вроде поиска дат, e-mail или HTML-тегов.

Пригодится 👍

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2210🏆4
😉 Давно мечтаете попробовать себя в автотестировании на Python? QA.GURU дарят такую возможность:

Забирайте абсолютно бесплатно мини-набор для старта в автоматизации — смотрите вебинар, выполняйте практическое задание на тренажере с написанием автотеста, изучайте карьерный гайд и получите секретный бонус!

— Урок с написанием кода

На уроке:

• Напишете свой первый автотест — даже без опыта в коде.
• Разберёте библиотеки Selenium, Playwright и Selene.
• Поймёте, как тестировать Web, Mobile и API в одном проекте.
• Узнаете тренды QA и фишки из практики.
• Выясните, как стартовать в профессии, пройти собеседование и выделиться среди кандидатов.


— Практика в тренажере

После урока вы получите доступ к интерактивной платформе, где:

• Повторите код и задания из занятия.
• Выполните работу в условиях, максимально близких к реальной работе.
• Закрепите навык работы с автотестами на реальном проекте.


— Карьерный гайд для автоматизаторов на Python

Внутри:

• Вопросы с реальных собеседований.
• Частые задачи и решения.
• Критерии оценки Junior / Middle / Senior.
• Подборка полезных ресурсов для роста: документация, книги, задачи и QA-чаты.


Секретный бонус от QA.GURU 🤫
После прохождения мини-программы вам откроется персональная скидка 10% на полный курс QA.GURU!

🔗 Забрать всё это можно прямо сейчас по ссылке!

Кстати, полноценный курс автоматизации на Python от QA.GURU стартует уже 28 августа — вас ждет целых 3 месяца обучения, 100 часов практики с менторами из Яндекса и Dodo Brands, + 4 проекта в портфолио 😎

Начните свой путь в автотестировании уже сейчас вместе с полезной подборкой, которую QA.GURU дарят вам бесплатно! Это отличный шанс погрузиться не только в теорию, но и попрактиковаться в реальном времени!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51💊1
Строй полноценные full-stack веб-приложения, используя только Python

Пиши полностью готовые приложения с фронтендом и бэкендом на Python без необходимости учить JavaScript или вести отдельные кодовые базы.

reflex это фреймворк на Python, который позволяет делать фронт и бэк одним языком. ты пишешь UI, логику, состояние, всё в Python, а Reflex сам компилит интерфейс на React/Next.js и запускает backend на FastAPI с WebSocket’ами для реактивности

Полностью опенсорс 😋

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
26👍12🤔5😁4🤝1
Лучший дисклеймер

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁87🤣357
FastAPI теперь официально самый популярный веб-фреймворк среди Python-разработчиков 🎉

А вот ещё несколько интересных фактов из свежего опроса State of Python 2025 от JetBrains:

> 51% используют Python для работы с данными
> 46% применяют его для веб-разработки
> Половина сообщества — новички
> 83% всё ещё сидят на старых версиях Python

Подробный разбор: https://jb.gg/python-25

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3717🔥6🤔1
Совет по Python:

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

def add(x, y, /):
return x + y

add(1, 2)
add(x=1, y=2) # TypeError: add() got some positional-only arguments passed as keyword arguments: 'x, y'


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍9🌭4🤔2
⚡️ RECURA — один из лучших каналов для разработчиков и программистов.

Канал ведёт практикующий DevOps-инженер, который ежедневно публикует:

код, повышающий эффективность разработки
лайфхаки и полезные трюки для Bash и Linux
готовые решения для Docker и Kubernetes
инструменты и утилиты для автоматизации
полезные материалы и советы по информационной безопасности

Подпишись, чтобы быть востребованным специалистом.
11👍4🔥2
Шпаргалка по очистке данных в Python Pandas

1. Обзор данных

import pandas as pd
df = pd.read_csv('data.csv') # Загрузить CSV
df.head(5) # Первые 5 строк
df.info() # Типы данных и количество null
df.describe() # Сводная статистика


2. Работа с пропусками и дубликатами

df.isnull().sum()              # Посчитать пропуски
df.dropna() # Удалить строки с null
df.fillna(0) # Заполнить пропуски нулями
df.duplicated().sum() # Посчитать дубликаты
df.drop_duplicates() # Удалить дубликаты


3. Переименование и приведение типов

df.rename(columns={'old': 'new'})   # Переименовать колонку
df.astype({'col': 'int'}) # Сменить тип данных
df.columns.str.strip() # Убрать пробелы


4. Фильтрация и выборка

df.loc[df['col'] > 100]             # Фильтр по условию
df.iloc[0:5] # Выбор по индексу строк
df['col'].isin(['A', 'B']) # Фильтр по значениям


5. Сортировка и группировка

df.sort_values('col')               # Сортировка по возрастанию
df.groupby('group')['val'].mean() # Группировка и агрегация
df['col'].value_counts() # Подсчёт уникальных значений


6. Операции с колонками

df['new'] = df['col1'] + df['col2']               # Новая колонка
df['col'] = df['col'].apply(lambda x: x*2) # Применить функцию
df.drop('col', axis=1) # Удалить колонку


7. Сохранение очищенных данных

df.to_csv('cleaned.csv', index=False)  # Экспорт в CSV


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
25👍10🏆5👀1
Подождут 🙄

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
22😁13🌭3😢2🤯1