Python Portal
58.5K subscribers
2.05K photos
185 videos
50 files
580 links
Всё самое интересное из мира Python

Связь: @devmangx

РКН: https://clck.ru/3GMMF6
Download Telegram
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
👍5020🔥11😁1
База

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

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

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

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

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

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4013🔥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
🔥29👍116
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
🔥80😁51🤝52🌚2💊2
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
👍2410🏆5
Строй полноценные 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👍13🤔6😁4🤝1
Лучший дисклеймер

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁98🤣407
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
👍4019🔥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
25👍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
31👍11🏆5👀1
Подождут 🙄

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
34😁18🌭5🔥3😢2🤯1
PyAutoGUI

Крайне любопытная библиотека языка Python, позволяющая превратить твой ПК в автоматизированную систему

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

Вот так можно создать простейший кликер:

import pyautogui
import time
 
def click():
    time.sleep(0.1)    
    pyautogui.click()
 
def main():
    for i in range(20):
        click()
 
main()


Документация тут: https://pyautogui.readthedocs.io/en/latest/

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5519🔥4😁4
Ещё играть не начал, а уже пройти не может

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
1😁99🤣42👀6🤯3🏆2
Нужно потестить HTTPS локально в Python?

Вот простое решение в 3 шага — удобно для проверки SSL/TLS, интеграций с API или любых приложений, которым нужен HTTPS в dev-среде.

Только для локальной разработки, браузер будет ругаться на самоподписанный сертификат. 😋

Для NodeJS есть альтернатива: web.dev

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍174
Помни, что итераторы в Python (и не только) рассчитаны на одно использование.

Когда ты прошёл по всем элементам, назад «перемотать» их нельзя.

Это поведение называется исчерпание итератора

umbers = [1, 2, 3]
reversed_numbers = reversed(numbers)

print(list(reversed_numbers)) # [3, 2, 1]
print(list(reversed_numbers)) # [] — итератор уже пуст


После одного прохода итератор «заканчивается» и повторно использовать его нельзя.

Чтобы пройтись снова, нужно создать новый итератор:

reversed_numbers = reversed(numbers)
print(list(reversed_numbers)) # [3, 2, 1] снова работает


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍348
Please open Telegram to view this post
VIEW IN TELEGRAM
😁72🤣198👀1
Microsoft выпустила новый курс по MCP для Python-разработчиков.

Курс полностью бесплатный и с открытым исходным кодом.

GitHub : https://github.com/microsoft/lets-learn-mcp-python

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥5
image_2025-08-23_07-39-01.png
1.2 MB
Шпаргалка по Git-командам

🔸Конфигурация

- git config --global user.name "Your Name"
Задаёт имя для коммитов глобально (для всех репозиториев).

- git config --global user.email "[email protected]"
Задаёт email для коммитов глобально.

- git config --list
Показывает все настройки конфигурации Git.

🔸Репозиторий и удалённые репозитории

- git init
Инициализирует новый Git-репозиторий в текущей директории.

- git clone <repo>
Создаёт локальную копию удалённого репозитория.

- git remote add <name> <url>
Добавляет новый удалённый репозиторий с именем и URL.

- git remote remove <name>
Удаляет удалённый репозиторий по имени.

- git remote rename <old-name> <new-name>
Переименовывает удалённый репозиторий.

🔸Ветки

- git branch
Список всех веток в репозитории.

- git branch <branch-name>
Создаёт новую ветку с указанным именем.

- git checkout -b <branch-name>
Создаёт новую ветку и сразу переключается на неё.

- git checkout <branch-name>
Переключается на указанную ветку.

- git merge <branch>
Сливает изменения из указанной ветки в текущую.

- git rebase <branch>
Переносит коммиты из текущей ветки поверх другой.

- git branch -d <branch-name>
Удаляет ветку, которая уже была слита.

- git branch -D <branch-name>
Принудительно удаляет ветку, независимо от её состояния.

🔸Индексация и коммиты

- git add <file>
Добавляет изменения в указанный файл в staging.

- git add .
Добавляет все изменения в текущей директории и подпапках.

- git commit -m "message"
Фиксирует проиндексированные изменения с сообщением.

- git commit --amend
Изменяет последний коммит (сообщение или содержимое).

🔸Отмена изменений

- git reset <file>
Убирает файл из staging (оставляет изменения).

- git reset HEAD~1
Отменяет последний коммит, но сохраняет изменения в рабочей директории.

🔸Просмотр изменений

- git status
Показывает состояние рабочего каталога и staging.

- git diff
Показывает различия между рабочей директорией и индексом.

- git diff --staged
Показывает различия между staged-изменениями и последним коммитом.

🔸История

- git log
Показывает историю коммитов текущей ветки.

- git log --oneline
Сокращённый лог (одна строка на коммит).

- git show <commit>
Показывает информацию о конкретном коммите.

- git blame <file>
Показывает последнюю модификацию для каждой строки файла.

🔸Stash

- git stash
Сохраняет текущие изменения во временное хранилище.

- git stash list
Список всех stash-записей.

- git stash apply
Применяет изменения из последнего stash.

- git stash drop
Удаляет конкретный stash.

- git stash pop
Применяет последний stash и удаляет его.

🔸Работа с удалённым репозиторием

- git pull
Загружает изменения из удалённого репозитория и сливает их.

- git push
Отправляет локальные коммиты в удалённый репозиторий.

- git push origin <branch>
Отправляет указанную ветку в удалённый репозиторий.

- git fetch
Загружает изменения из удалённого репозитория без слияния.

- git fetch --all
Обновляет все удалённые репозитории.

🔸Теги

- git tag <tag-name>
Создаёт тег для определённого коммита.

- git tag -a <tag-name> -m "message"
Создаёт аннотированный тег с сообщением.

- git push origin <tag-name>
Отправляет тег в удалённый репозиторий.

- git tag -d <tag-name>
Удаляет тег локально.

🔸Продвинутые команды

- git cherry-pick <commit>
Применяет изменения из указанного коммита в текущую ветку.

- git rebase -i HEAD~n
Интерактивный rebase для последних *n* коммитов.

- git reflog
Показывает журнал всех действий в репозитории.

- git bisect
Позволяет найти коммит с багом методом бинарного поиска.

- git describe
Показывает последний тег, доступный для коммита.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4115🔥13
This media is not supported in your browser
VIEW IN TELEGRAM
Когда все-таки согласился на пятничный деплой 😉

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁62🔥75