Нужно потестить 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
👍18❤5
Помни, что итераторы в 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
👍40❤10
Please open Telegram to view this post
VIEW IN TELEGRAM
😁87🤣20❤9👀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
👍29🔥5❤3
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 "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> Показывает последнюю модификацию для каждой строки файла.
-
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
👍42❤18🔥14
Please open Telegram to view this post
VIEW IN TELEGRAM
😁80🔥8❤5
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
🤯34❤13👍7🔥1😁1
Пример построения цветной столбчатой диаграммы в Python с использованием библиотеки matplotlib.
Шаг 1. Установи matplotlib
Шаг 2. Импортируй pyplot
Шаг 3. Подготовь данные
Шаг 4. Задай цвета для столбцов
Шаг 5. Построй диаграмму
Шаг 6. Добавь подписи и заголовок
Шаг 7. Покажи график
👉 @PythonPortal
Шаг 1. Установи matplotlib
pip 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()
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45❤10🏆7💊6🤔2👀1
Шпаргалка по простым паттернам вывода в Python.
Слева результат, справа минимальный код на вложенных циклах
👉 @PythonPortal
Слева результат, справа минимальный код на вложенных циклах
forPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤40🔥11💊5🤔3🤯3🤝2
Совет по чистому коду в Python:
Используй
Пример:
👉 @PythonPortal
Используй
.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'
Please open Telegram to view this post
VIEW IN TELEGRAM
👍40❤18🤝1
Топ-8 архитектурных стилей API
От выбора архитектуры зависит, насколько легко всё будет работать вместе.
👉 @PythonPortal
От выбора архитектуры зависит, насколько легко всё будет работать вместе.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤26👍12
This media is not supported in your browser
VIEW IN TELEGRAM
Принёс полезное: огромную коллекцию из 1500+ отобранных API для ваших проектов, от погоды и карт до генераторов картинок и NLP-сервисов
Забираем с сайта или с GitHub🍯
👉 @PythonPortal
Забираем с сайта или с GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥7❤5🤝2
Узнайте, как работает асинхронное программирование в Python
Асинхронное программирование позволяет выполнять несколько задач одновременно, не блокируя основную.
Вот как это можно реализовать в Python.
Полный код в этом репо: ссылка
👉 @PythonPortal
Асинхронное программирование позволяет выполнять несколько задач одновременно, не блокируя основную.
Вот как это можно реализовать в Python.
Полный код в этом репо: ссылка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤9🔥4💊1
И вот теперь ты уже не Python-разработчик, а мастер по телевизорам и настройке «вацапа» с интернетом.
👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤣153😁19❤10👍5🤔1👀1
Бесплатные ресурсы для изучения Python с помощью проектов
👉 @PythonPortal
1. http://www.pythonchallenge.com/
2. https://www.hackerrank.com/domains/python
3. https://www.hackerearth.com/practice/python/getting-started/numbers/practice-problems/
4. https://learnpython.org/
5. https://www.w3schools.com/python/python_exercises.asp
6. http://codingbat.com/python
7. https://pythonbasics.org/exercises/
8. https://www.geeksforgeeks.org/python-programming-language/learn-python-tutorial
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24❤10👍3
В Python есть низкоуровневый API Protocols и Transports. Он нужен когда важен тонкий контроль над соединениями, буферами и управлением потоком данных. Подходит для TCP и UDP.
В этой статье Jacob Padilla объясняет как работают Protocols и Transports. Разбирает методы
В примерах есть echo-серверы для TCP и UDP. Показан flow control через
👉 @PythonPortal
В этой статье Jacob Padilla объясняет как работают Protocols и Transports. Разбирает методы
connection_made, data_received, connection_lost. Показывает создание серверов через loop.create_server и create_datagram_endpoint. Сравнивает со Streams и когда их выбирать.В примерах есть echo-серверы для TCP и UDP. Показан flow control через
pause_writing и resume_writing. Полезно когда важны задержки и много соединений. Для типовых задач чаще хватает Streams.Please open Telegram to view this post
VIEW IN TELEGRAM
❤24👍11🏆1