Python Portal
Всё самое интересное из мира Python Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3GMMF6
Больше📈 Аналитический обзор Telegram-канала Python Portal
Канал Python Portal (@pythonportal) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 50 919 подписчиков, занимая 2 540 место в категории Технологии и приложения и 12 053 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 50 919 подписчиков.
Согласно последним данным от 30 августа, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -422, а за последние 24 часа — -37, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 9.45%. В первые 24 часа после публикации контент обычно набирает 4.69% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 4 811 просмотров. В течение первых суток публикация набирает 2 390 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 20.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как строка, none, true, модуль, peter.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Всё самое интересное из мира Python
Сотрудничество, реклама: @devmangx
Менеджер: @Spiral_Yuri
РКН: https://clck.ru/3GMMF6”
Благодаря высокой частоте обновлений (последние данные получены 31 августа, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
.exception() вместо .error(), чтобы в лог вместе с исключением попадал traceback
Пример:
import logging
LOGGER = logging.getLogger()
try:
{}["not_present"]
except Exception as exc:
LOGGER.error(exc) # только сообщение об ошибке
# -> 'not_present'
try:
{}["not_present"]
except Exception as exc:
LOGGER.exception(exc) # сообщение + traceback
# -> 'not_present'
# Traceback (most recent call last):
# File "my_module.py", line 12, in <module>
# KeyError: 'not_present'
👉 @PythonPortalfor
👉 @PythonPortalpip install matplotlib
Шаг 2. Импортируй pyplot
import matplotlib.pyplot as plt
Шаг 3. Подготовь данные
categories = ['A', 'B', 'C', 'D', 'E']
values = [10, 15, 7, 12, 20]
Шаг 4. Задай цвета для столбцов
colors = ['red', 'blue', 'green', 'orange', 'purple']
Шаг 5. Построй диаграмму
plt.figure(figsize=(6,4))
plt.bar(categories, values, color=colors)
Шаг 6. Добавь подписи и заголовок
plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Colored Bar Graph')
Шаг 7. Покажи график
plt.show()
👉 @PythonPortal$ git clone https://github.com/NativeSensors/EyeGestures.git
$ cd EyeGestures
$ pip install -r requirements.txt
или
python3 -m pip install eyeGestures
Открытый код, документация и примеры использования - тык
👉 @PythonPortalgit config --global user.name "Your Name"
Задаёт имя для коммитов глобально (для всех репозиториев).
- git config --global user.email "you@example.com"
Задаёт 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
Показывает последний тег, доступный для коммита.
👉 @PythonPortalumbers = [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] снова работает
👉 @PythonPortalimport 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/
👉 @PythonPortalimport 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/ в сигнатуре функции.
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