FastAPI теперь официально самый популярный веб-фреймворк среди Python-разработчиков 🎉
А вот ещё несколько интересных фактов из свежего опроса State of Python 2025 от JetBrains:
> 51% используют Python для работы с данными
> 46% применяют его для веб-разработки
> Половина сообщества — новички
> 83% всё ещё сидят на старых версиях Python
Подробный разбор: https://jb.gg/python-25
👉 @PythonPortal
А вот ещё несколько интересных фактов из свежего опроса State of Python 2025 от JetBrains:
> 51% используют Python для работы с данными
> 46% применяют его для веб-разработки
> Половина сообщества — новички
> 83% всё ещё сидят на старых версиях Python
Подробный разбор: https://jb.gg/python-25
Please open Telegram to view this post
VIEW IN TELEGRAM
👍40❤18🔥6🤔1
Совет по Python:
Вы можете заставить аргументы быть только позиционными, используя символ
👉 @PythonPortal
Вы можете заставить аргументы быть только позиционными, используя символ
/
в сигнатуре функции.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'
Please open Telegram to view this post
VIEW IN TELEGRAM
❤25👍11🌭4🤔2
Шпаргалка по очистке данных в Python Pandas
1. Обзор данных
2. Работа с пропусками и дубликатами
3. Переименование и приведение типов
4. Фильтрация и выборка
5. Сортировка и группировка
6. Операции с колонками
7. Сохранение очищенных данных
👉 @PythonPortal
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
Please open Telegram to view this post
VIEW IN TELEGRAM
❤30👍11🏆5👀1
PyAutoGUI
Крайне любопытная библиотека языка Python, позволяющая превратить твой ПК в автоматизированную систему
За пару строчек кода можно заставить скрипт сделать скриншот, заставить мышку навести на нужную точку на экране, взаимодействовать с различными параметрами окон, написать слово или целый абзац или даже загуглить за тебя🚬
Вот так можно создать простейший кликер:
Документация тут: https://pyautogui.readthedocs.io/en/latest/
👉 @PythonPortal
Крайне любопытная библиотека языка 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/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54❤19🔥4😁4
Нужно потестить HTTPS локально в Python?
Вот простое решение в 3 шага — удобно для проверки SSL/TLS, интеграций с API или любых приложений, которым нужен HTTPS в dev-среде.
Только для локальной разработки, браузер будет ругаться на самоподписанный сертификат.😋
Для NodeJS есть альтернатива: web.dev
👉 @PythonPortal
Вот простое решение в 3 шага — удобно для проверки SSL/TLS, интеграций с API или любых приложений, которым нужен HTTPS в dev-среде.
Только для локальной разработки, браузер будет ругаться на самоподписанный сертификат.
Для NodeJS есть альтернатива: web.dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤4
Помни, что итераторы в Python (и не только) рассчитаны на одно использование.
Когда ты прошёл по всем элементам, назад «перемотать» их нельзя.
Это поведение называется исчерпание итератора
После одного прохода итератор «заканчивается» и повторно использовать его нельзя.
Чтобы пройтись снова, нужно создать новый итератор:
👉 @PythonPortal
Когда ты прошёл по всем элементам, назад «перемотать» их нельзя.
Это поведение называется исчерпание итератора
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] снова работает
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34❤8
Please open Telegram to view this post
VIEW IN TELEGRAM
😁71🤣17❤8👀1
Microsoft выпустила новый курс по MCP для Python-разработчиков.
Курс полностью бесплатный и с открытым исходным кодом.
GitHub : https://github.com/microsoft/lets-learn-mcp-python
👉 @PythonPortal
Курс полностью бесплатный и с открытым исходным кодом.
GitHub : https://github.com/microsoft/lets-learn-mcp-python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥5
image_2025-08-23_07-39-01.png
1.2 MB
Шпаргалка по Git-командам
🔸 Конфигурация
-
Задаёт имя для коммитов глобально (для всех репозиториев).
-
Задаёт email для коммитов глобально.
-
Показывает все настройки конфигурации Git.
🔸 Репозиторий и удалённые репозитории
-
Инициализирует новый Git-репозиторий в текущей директории.
-
Создаёт локальную копию удалённого репозитория.
-
Добавляет новый удалённый репозиторий с именем и URL.
-
Удаляет удалённый репозиторий по имени.
-
Переименовывает удалённый репозиторий.
🔸 Ветки
-
Список всех веток в репозитории.
-
Создаёт новую ветку с указанным именем.
-
Создаёт новую ветку и сразу переключается на неё.
-
Переключается на указанную ветку.
-
Сливает изменения из указанной ветки в текущую.
-
Переносит коммиты из текущей ветки поверх другой.
-
Удаляет ветку, которая уже была слита.
-
Принудительно удаляет ветку, независимо от её состояния.
🔸 Индексация и коммиты
-
Добавляет изменения в указанный файл в staging.
-
Добавляет все изменения в текущей директории и подпапках.
-
Фиксирует проиндексированные изменения с сообщением.
-
Изменяет последний коммит (сообщение или содержимое).
🔸 Отмена изменений
-
Убирает файл из staging (оставляет изменения).
-
Отменяет последний коммит, но сохраняет изменения в рабочей директории.
🔸 Просмотр изменений
-
Показывает состояние рабочего каталога и staging.
-
Показывает различия между рабочей директорией и индексом.
-
Показывает различия между staged-изменениями и последним коммитом.
🔸 История
-
Показывает историю коммитов текущей ветки.
-
Сокращённый лог (одна строка на коммит).
-
Показывает информацию о конкретном коммите.
-
Показывает последнюю модификацию для каждой строки файла.
🔸 Stash
-
Сохраняет текущие изменения во временное хранилище.
-
Список всех stash-записей.
-
Применяет изменения из последнего stash.
-
Удаляет конкретный stash.
-
Применяет последний stash и удаляет его.
🔸 Работа с удалённым репозиторием
-
Загружает изменения из удалённого репозитория и сливает их.
-
Отправляет локальные коммиты в удалённый репозиторий.
-
Отправляет указанную ветку в удалённый репозиторий.
-
Загружает изменения из удалённого репозитория без слияния.
-
Обновляет все удалённые репозитории.
🔸 Теги
-
Создаёт тег для определённого коммита.
-
Создаёт аннотированный тег с сообщением.
-
Отправляет тег в удалённый репозиторий.
-
Удаляет тег локально.
🔸 Продвинутые команды
-
Применяет изменения из указанного коммита в текущую ветку.
-
Интерактивный rebase для последних *n* коммитов.
-
Показывает журнал всех действий в репозитории.
-
Позволяет найти коммит с багом методом бинарного поиска.
-
Показывает последний тег, доступный для коммита.
👉 @PythonPortal
-
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>
Показывает последнюю модификацию для каждой строки файла.
-
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
Показывает последний тег, доступный для коммита.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍38🔥11❤10
Please open Telegram to view this post
VIEW IN TELEGRAM
😁52🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Выбирай нужное и обучайся:
385 ГБ — Python
229 ГБ — JS, HTML, CSS
422 ГБ — C, C++, C#
147 ГБ — Java, PHP
202 ГБ — Rust, Golang
352 ГБ — Flutter, Kotlin, Swift
168 ГБ — DevOps, СисАдмин
242 ГБ — ИБ, Хакинг
122 ГБ — Windows, Linux
107 ГБ — Git, GitHub
242 ГБ — БД (SQL и NoSQL)
163 ГБ — QA-тестирование
108 ГБ — ИИ, Machine Learning
189 ГБ — Разработка игр
171 ГБ — Разработка ботов
612 ГБ — Собеседования в IT
3942 ГБ — Другие направления
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣9❤3👍1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Управление глазами с помощью Python
EyeGestures — это открытая библиотека на Python для отслеживания взгляда. Использует обычные камеры, веб-камеры или камеры смартфонов, чтобы отслеживать движение глаз, фиксации и моргания, и конвертировать это в события, вроде управления курсором движением глаз
Версия на JavaScript позволяет запускать всё прямо в браузере
Установка:
или
Открытый код, документация и примеры использования - тык
👉 @PythonPortal
EyeGestures — это открытая библиотека на Python для отслеживания взгляда. Использует обычные камеры, веб-камеры или камеры смартфонов, чтобы отслеживать движение глаз, фиксации и моргания, и конвертировать это в события, вроде управления курсором движением глаз
Версия на JavaScript позволяет запускать всё прямо в браузере
Установка:
$ git clone https://github.com/NativeSensors/EyeGestures.git
$ cd EyeGestures
$ pip install -r requirements.txt
или
python3 -m pip install eyeGestures
Открытый код, документация и примеры использования - тык
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2