Python RU
13.4K subscribers
871 photos
41 videos
36 files
1.12K links
Все для python разработчиков

админ - @haarrp

@python_job_interview - Python собеседования

@ai_machinelearning_big_data - машинное обучение

@itchannels_telegram - 🔥лучшие ит-каналы

@programming_books_it - it книги

@pythonl

РКН: clck.ru/3Fmy2j
加入频道
📧Python Атоматизация отправки email с selenium

Видео

@pro_python_code
🖥 Полный курс по библиотеке Numpy. Урок 2 Полезные функции.

Видео
Упражнения

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Полный курс по библиотеке Numpy. Урок 3. Практика

Видео
Код из видео

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🐍 Как профессионально писать логи Python

В статье мы поговорим о библиотеке structlog и узнаем, как она помогает писать качественные логи. Такие логи содействуют ежедневной работе программиста и способствуют внедрению эффективных практик для обеспечения последовательного подхода к логированию во всем проекте.

Помимо этого, рассмотрим распространенные проблемы логирования и способы их решения посредством structlog. Материал будет интересен как для начинающих, так и для опытных разработчиков, поскольку данный инструмент способен кардинально изменить процесс написания логов!

Когда-то я часто пренебрегал логами и писал их только тогда, когда они помогали в среде разработки. Логи служили эффективным средством для обнаружения ошибок или проверки надлежащей работы кода, но их польза ограничивалась только локальной отладкой.

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

Как результат, упрощается парсинг логов для поставляемого приложения и улучшается мониторинг в таких инструментах, как Datadog и Grafana.

В статье я поделюсь опытом работы со structlog и продемонстрирую ее возможности на примерах. Допустим, пользователь намерен загрузить файлы, и мы уже создали конечную точку, принимающую эти запросы. В прошлом я бы написал логи таким образом:

import logging
...
logging.debug("Start uploading file with name %s. Number of retries: %s", file_name, 0)
...
logging.error("Failed uploading file with name %s. Current retry: %s.", file_name, retries)
...


С данным фрагментом кода все в порядке.

СТАТЬЯ
🖥 Полный курс по библиотеке Numpy. Урок 4: Создание матриц из файла.

Видео
Код из видео

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Полный курс по библиотеке Numpy. Урок 5: Продвинутые функции.

Видео
Код из видео
Часть 1
Часть 2
Часть 3
Часть4

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
📹 Python+SQL работа с базами данных.

Видео

@pro_python_code
🖥 Python анализ данных с Pandas.Урок 1: Введение.

Видео
Код из видео

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Дайджест полезных материалов из мира Python за неделю

Почитать:
Django или Fast API: выбираем Python-фреймворк для веб-разработки
Что нового в Pandas 2.1
Готовые скрипты Python
Интеграция Telegram ботов в Django приложениях
6 развлекательных проектов на Python: от шаверма-бота до игры в слова
9 лучших консольных файловых менеджеров Linux
Управление сервоприводами, часть 2. Управляем сервоприводами с помощью серво-контроллера через USB любых компьютеров
Клонирование голоса, замена лица по фото, удаления объектов в видео и все в одном open-source проекте Wunjo AI
Эластичный DAG или «гнём, где не гнулось»
Как понять, что клиента пора реактивировать?
Анализ данных с использованием библиотеки Dask
Взгляд на телеграм-ботов изнутри
Учим ИИ чатбота слушать и говорить
Создание интерактивных аналитических панелей с помощью Python Streamlit
Deploying Apps on Render
Mastering ZIP File Handling in Python: Reading and Creating Zip Archives
The Minion Game - HackerRank Solution Python
Iterables and Iterators - HackerRank Solution Python
Regex Substitution - HackerRank Solution Python
How to Solve the "No Idea!" Challenge in Python
🌐 UN Goals : Education & Gender Equity ⚖️
Starting my Journey in Open Source
Created a toggle_state_button with PyQt5
Accelerating Releases with Pulumi: My Proxy Project Journey

Посмотреть:
🌐 HTMX заменит Frontend?! WTF? ( 12:12)
🌐 Полный курс по библиотеке Numpy. Матрицы ( 11:24)
🌐 Уроки Golang с нуля /#26 - Обработка ошибок ( 08:14)
🌐 Python+SQL работа с базами данных. ( 11:10)
🌐 Полный курс по библиотеке Numpy. Полезные функции ( 11:05)
🌐 Полный курс по библиотеке Numpy. Применение Numpy ( 11:52)
🌐 Полный курс по библиотеке Numpy. Создание матриц из файла ( 15:55)
🌐 Python Атоматизация отправки email с selenium ( 04:59)
🌐 Полный курс по библиотеке Numpy. Продвинутые методы работы с матрицами ( 07:28)
🌐 Python анализ данных с Pandas. ( 17:04)
🌐 【作業配信】ろっきーさんの新ビジュアル仕上げていくぅ~!龍角散と共に・・・! ( 01:34:00)
🌐 Задание 8 | ЕГЭ по информатике | ДЕМО-2024 ( 08:55)
🌐 Задание 9 | ЕГЭ по информатике | ДЕМО-2024 ( 09:11)
🌐 Задание 10 | ЕГЭ по информатике | ДЕМО-2024 ( 02:16)
🌐 Задание 11 | ЕГЭ по информатике | ДЕМО-2024 ( 04:18)
🌐 Задача с собеседования на Junior Python разработчика #shorts #python ( 00:48)
🌐 Как узнать процент заряда батареи с помощью Python #shorts ( 00:45)

Хорошего дня!

@pro_python_code
Легкий способ получать свежие обновлении и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

Data Science: t.me/data_analysis_ml
Java: t.me/javatg
Базы данных: t.me/sqlhub
Машинное обучение: t.me/ai_machinelearning_big_data
Go: t.me/Golang_google
C/C++/ t.me/cpluspluc
C#: t.me/csharp_ci
Хакинг: t.me/linuxkalii
Мобильная разработка: t.me/mobdevelop
Docker: t.me/+0WdB4uvOwCY0Mjdi
Python: t.me/pythonl
Rust: t.me/rust_code
Javascript: t.me/javascriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Linux: t.me/+A8jY79rcyKJlYWY6
Big Data: t.me/bigdatai
Devops: t.me/devOPSitsec
Тестирование:https://yangx.top/+F9jPLmMFqq1kNTMy
Собеседования: https://yangx.top/machinelearning_interview

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy

😆ИТ-Мемы: t.me/memes_prog

🇬🇧Английский: t.me/english_forprogrammers

ИИ: t.me/vistehno

📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy
🖥 Unicaps

Унифицированный Python API для решения CAPTCHA.

Github
Examples

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥Python анализ данных с Pandas. PandaSQL

Видео
Код из видео
Введение в Pandas

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
⬅️ Использование WebSocket с Python

Что такое WebSocket?

Обычно для обмена данными в интернете используется протокол передачи гипертекста (HTTP, HyperText Transfer Protocol). Он работает по алгоритму запрос/ответ. Когда веб-браузеру нужны данные с веб-сервера, он выполняет запрос, на который веб-сервер возвращает данные через ответ: изображение 1.

☝️Чтобы поддерживать актуальную версию веб-страницы, браузеру необходимо достаточно часто выполнять запросы для получения данных с веб-сервера.
Этот процесс называется опросом (polling). Если данные нужно обновлять постоянно, он становится чрезмерно затратным, поскольку и клиент, и сервер постоянно выполняют запросы и ответы. С другой стороны, постоянный опрос бесполезен, если данные на сервере меняются редко (или нерегулярно). Но если уменьшить частоту опроса, браузер может пропустить важные обновления данных.

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

Алгоритм работы WebSoket показан на изображении 2.

Сначала веб-браузер инициирует запрос к веб-серверу, отправляя HTTP-заголовок “can we upgrade to websocket”.
Если веб-сервер поддерживает WebSocket, он возвращает ответ с заголовком “OK to upgrade to websocket”.
Затем устанавливается долговременное двунаправленное соединение с сокетом.
И клиент, и сервер смогут обмениваться данными, используя это сокет-соединение.

С WEBSOCKET ТАКЖЕ МОЖНО ИСПОЛЬЗОВАТЬ ДЛЯ ПОДКЛЮЧЕНИЯ К СОКЕТАМ ПОРТЫ 80 (HTTP) И 443 (HTTPS). ЭТО ПОЗВОЛЯЕТ РАБОТАТЬ С WEBSOCKET ДАЖЕ ЧЕРЕЗ ПРОКСИ-СЕРВЕР И БРАНДМАУЭР.

Создание сервера WebSocket

📌 Читать

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Python анализ данных с Pandas. Join, merge, concat в Pandas

Видео
Код из видео
Часть 1
Часть 2

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Python+SQL часть2 создание таблиц.

Видео
Часть 1

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🐍 Как сделать снимок экрана с помощью Python

Мы рассмотрим, как сделать снимок экрана с помощью python в рабочем столе с помощью пакета pyautogui, который используется для автоматизации графического интерфейса.

🟢Сначала установим пакет, выполнив команду

pip install pyautogui

🟢Создание снимков экрана с помощью python

Чтобы сделать снимок экрана с помощью python в рабочем столе, импортируйте модуль pyautogui, который имеет множество функций, но в данном случае мы будем использовать метод снимка экрана.

import pyautogui

screen = pyautogui.screenshot()
screen.save("my_image.png")

При этом будет сделан скриншот всего экрана и сохранен в текущем рабочем каталоге, для сохранения изображения в другом каталоге измените путь в функции save.

🟢 Сохранение снимков экрана в папке

import pyautogui

screen = pyautogui.screenshot()
screen.save("test/image/my_image.png")


Github

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🧡Создание приложения для потоковой передачи видео с физическими элементами управления

Как создать на Python приложение для потокового видео, которым можно управлять с помощью физических кнопок?

Мы будем использовать микроконтроллер (например, Arduino или Raspberry Pi) для взаимодействия с физическими кнопками и обмена данными с нашей программой на Python. Цель – запускать и останавливать потоковое видео нажатием физических кнопок.

Необходимые условия:
Прежде чем мы начнем, вам потребуется следующее:

1. Компьютер с установленным Python.
2. Веб-камера, подключенная к компьютеру.
3. Микроконтроллер (например, Arduino, Raspberry Pi) с подключенными к нему кнопками.
4. Базовые знания по программированию на языке Python.

Настройка оборудования
✔️ Сначала настройте аппаратные компоненты:

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

Установление связи
✔️ Далее следует установить канал связи между программой на языке Python и микроконтроллером. Для этого можно использовать последовательный интерфейс USB или другие интерфейсы в зависимости от выбора аппаратного обеспечения.

В данном примере мы будем использовать последовательный интерфейс USB.

Написание кода на языке Python
✔️ Теперь напишем код на языке Python для управления видеопотоком с помощью физических кнопок. Мы будем использовать OpenCV для захвата видео с веб-камеры и вывода его на экран. Кнопки, подключенные к микроконтроллеру, будут передавать команды на запуск и остановку видеопотока.

import cv2

# Initialize the webcams
cap_self = cv2.VideoCapture(0)
cap_other = cv2.VideoCapture(1) # Change the index to the appropriate camera for the other user

# Check if the webcams are opened successfully
if not cap_self.isOpened() or not cap_other.isOpened():
print("Error: Could not open one or both of the webcams.")
exit()

# Create a window to display both video feeds side by side
cv2.namedWindow("Video Chat App", cv2.WINDOW_NORMAL)
cv2.resizeWindow("Video Chat App", 640, 480) # Adjust the window size as needed

while True:
# Read frames from both webcams
ret_self, frame_self = cap_self.read()
ret_other, frame_other = cap_other.read()

if not ret_self or not ret_other:
print("Error: Could not read frames from one or both of the webcams.")
break

# Resize frames to have the same dimensions (optional)
frame_self = cv2.resize(frame_self, (320, 240))
frame_other = cv2.resize(frame_other, (320, 240))

# Concatenate frames horizontally to display side by side
display_frame = cv2.hconcat([frame_self, frame_other])

# Display the concatenated frame in the window
cv2.imshow("Video Chat App", display_frame)

# Break the loop when the 'q' key is pressed
if cv2.waitKey(1) & 0xFF == ord('q'):
break

# Release the webcams and destroy the window
cap_self.release()
cap_other.release()
cv2.destroyAllWindows()


Тестирование установки
Загрузите в микроконтроллер микропрограмму для обнаружения нажатия кнопок. Убедитесь, что она посылает команду “START” (s – ‘старт’ в моем коде) при нажатии одной кнопки и команду “STOP” (q – ‘стоп’ в моем коде) при нажатии другой кнопки.
Запустите программу на Python на своем компьютере.
При нажатии соответствующей кнопки на микроконтроллере вы
должны увидеть в окне OpenCV запуск и остановку видеопотока.

⬅️ Мы создали приложение для потоковой передачи видео с физическими кнопками запуска и остановки с помощью Python и микроконтроллера.

⬅️ Этот проект демонстрирует, как интегрировать аппаратные элементы управления с программой на Python для расширения функциональности и улучшения взаимодействия с пользователем.

⬅️ Вы можете расширить этот проект, добавив дополнительные функции или интегрировав его с другими аппаратными компонентами.

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Дайджест полезных материалов из мира : Python за неделю

Почитать:
Microsoft предлагает БЕСПЛАТНЫЕ онлайн курсы с сертификацией
Monitoring System (SpyWare) с C2 сервером на базе чат-бота в telegram. Часть 1: Создание бота
Тестирование производительности на Python: Пошаговое руководство с Flask
DVC — прекрасный инструмент для DataScience
Циркуль и линейка. Часть 1
Кто отвечает за развитие Python
Архитектура высоконагруженных телеграм-ботов на Python
Let me teach you the ancient method of Fu Thai! Гнев и ненависть брутфорсеров в 2023 году
Моделирование биологических явлений с помощью Python
Визуальное RPG с долговременной памятью, генерируемое из 3 нейросетей и LLamы
Деревья решений в pySpark: от семечка до параметрической оптимизации случайного леса
Стайлгайд PySpark: как сделать код элегантным
Short-circuiting
Tuple Immutability
How Does Nerve Regen Formula Work?
Code Review - The foundation for quality software
Trying to bridge the gap between WFC “Even Simpler Tiled Model” and Constraint Satisfaction Problem (CSP) propositional rules
Code review - a unique way of debugging
Automating Product Descriptions in Odoo with OpenAI's GPT-3 and Python
Creating Own Chat GPT
Elastic D&D - Week 4 - Text Note Input
Scenario-Based Testing with Vedro

Посмотреть:
🌐 Невероятная нейросеть переводит любое видео на другие языки с сохранением оригинального голоса. ( 00:55)
🌐 Python анализ данных с Pandas. PandaSQL ( 12:13)
🌐 Python анализ данных с Pandas. Join, merge, concat в Pandas ( 19:25)
🌐 Python+SQL часть2 создание таблиц. ( 05:15)
🌐 Управление жестами всегда было в ваших часах, просто его нужно было активировать. ( 00:11)
🌐 Уроки Golang с нуля /#28 - Встраивание типов ( 06:16)
🌐 Python анализ данных с Pandas. ( 17:04)
🌐 Уроки Golang с нуля /#27 - Bufio. Чтение и запись ( 10:35)
🌐 Задание 12 | ЕГЭ по информатике | ДЕМО-2024 ( 04:58)
🌐 Задание 13 | ЕГЭ по информатике | ДЕМО-2024 ( 04:05)
🌐 Python для начинающих. Урок 11 | Списки ( 22:42)
🌐 Сколько зарабатывают программисты в Google #shorts ( 00:50)
🌐 Email рассылка с Яндекс почты с помощью Python ( 05:05)

Хорошего дня!

@pro_python_code