Python RU
Все для python разработчиков админ - @haarrp @python_job_interview - Python собеседования @ai_machinelearning_big_data - машинное обучение @itchannels_telegram - 🔥лучшие ит-каналы @programming_books_it - it книги @pythonl РКН: clck.ru/3Fmy2j
نمایش بیشتر📈 تحلیل کانال تلگرام Python RU
کانال Python RU (@pro_python_code) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 12 504 مشترک است و جایگاه 10 152 را در دسته فناوری و برنامهها و رتبه 52 967 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 12 504 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 09 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -77 و در ۲۴ ساعت گذشته برابر 0 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 7.25% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 2.89% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 907 بازدید دریافت میکند. در اولین روز معمولاً 361 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 6 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند api, docker, github, sql, linux تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Все для python разработчиков
админ - @haarrp
@python_job_interview - Python собеседования
@ai_machinelearning_big_data - машинное обучение
@itchannels_telegram - 🔥лучшие ит-каналы
@programming_books_it - it книги
@pythonl
РКН: clck.ru/3Fmy2j”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 10 ژوئن, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
git clone https://github.com/gnebbia/pdlist
cd pdlist
pip install -r requirements.txt
python setup.py install
▪Github
#infosec #pentesting #bugbounty
@pro_python_codeimport solara
text_input = solara.reactive("")
todos = solara.reactive([
{ "text": solara.reactive("Learn Solara"), "done": solara.reactive(False) },
{ "text": solara.reactive("Build a Solara app"), "done": solara.reactive(False) }
])
Page()
Затем определяем основной компонент с именем Page:
@solara.component
def Page():
# добавление css
solara.Style("""
.add-button {
margin-right: 10px;
}
""")
# центрирование карты
with solara.Column(align="center"):
with solara.Card(title="Todo App"):
for todo in todos.value:
Todo(todo)
if len(todos.value) == 0:
solara.Text("No todos yet.")
solara.InputText(label="Add a todo", value=text_input),
solara.Button("Add", on_click=on_add_todo, classes=["primary", "add-button"]),
solara.Button("Remove finished tasks", classes=["secondary"], on_click=clear_finished_todos),
Page()
Рассмотрим код шаг за шагом.
👇
Читать# File: views.py
from django.http import JsonResponse
def hello_view(request):
return JsonResponse({"message": "Hello, Django!"})
# File: myproject/urls.py
from django.urls import path
from myapp.views import hello_view
urlpatterns = [
path('hello/', hello_view, name='hello'),
]
Flask: легкий микрофреймворк
Flask – это микрофреймворк, в котором приоритет отдается простоте и гибкости, а не встроенной функциональности. Это означает, что разработчики могут выбирать инструменты и расширения по мере необходимости, что делает его идеальным для малых и средних проектов.
Примеры использования
• Прототипирование: Минимальный объем кодового кода Flask делает его отличным выбором для быстрого создания прототипов и разработки пробных версий.
• RESTful API: Легкий дизайн Flask и широкая поддержка таких расширений, как Flask-RESTful, позволяют разработчикам создавать эффективные REST API.
• Одностраничные приложения (SPA): Flask может выступать в качестве бэкенда для SPA, используя преимущества своей простоты и легкой интеграции с фреймворками фронтенда.
Pinterest, популярная платформа для поиска контента, использует Flask для эффективной работы с бэкэнд-операциями, демонстрируя способность к масштабированию и оптимизации производительности.
Образец кода
Приведенный ниже код на языке Python является примером веб-приложения, созданного с использованием Flask. В нем создается экземпляр класса Flask и определяется маршрут с именем “hello”. При обращении к маршруту “hello” с помощью GET-запроса приложение возвращает JSON-ответ с парой ключ-значение “message” и “Hello, Flask!”.
# File: app.py
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/hello', methods=['GET'])
def hello():
return jsonify({"message": "Hello, Flask!"})
Читать про остальные# определяем список чисел
numbers: list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# также определяем переменную-флаг, которая укажет, было ли найдено четное число
found_even: bool = False
for num in numbers:
# если остаток после деления на 2 равен 0, то число четное
if num % 2 == 0:
print(f"{num} is even")
# устанавливаем флаг в True, потому что нашли четное число
found_even = True
# мы можем остановить выполнение, потому что нашли четное число
break
# если значение флага False, то четных чисел не найдено
if not found_even:
print("No even numbers found")
🟠Эта логика относительно проста. Применяем флаг (в данном случае переменная found_even) для обозначения того, найдено ли четное число или нет. Если в процессе итерации находится четное число, используем ключевое слово break, чтобы остановить выполнение цикла.
Вышеприведенное можно записать следующим образом:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers:
if num % 2 == 0:
print(f"{num} is even")
break
else:
print("No even numbers found")
🟠Теперь переменная-флаг found_even больше не требуется. Мы можем использовать ключевое слово else, чтобы вывести “Четные числа не найдены” только в том случае, если ключевое слово break так и не будет задействовано в процессе итерации цикла.
Секрет 2. Оператор walrus
🟠Оператор walrus (:=) был введен в версию Python 3.8. Он используется для назначения переменных со значениями в качестве выражений.
Рассмотрим следующий пример. Нам необходимо реализовать логику, которая генерирует последовательность случайных чисел до тех пор, пока не будет сгенерировано определенное число.
🟠Предположим, нам нужно получить 10. Обычно пишем что-то вроде:
import random
rand = None
while True:
# генерация случайного числа от 1 до 100
rand = random.randint(1, 100)
# если случайное число равно 10, прервать выполнение
if rand != 10:
print(rand)
else:
break
# это будет выполнено только в том случае, если мы получим 10 и прервем цикл
print("We got a 10!")
Генерируем в цикле случайное число и сохраняем его в переменной rand. Количество итераций зависит от значения переменной rand. Чем быстрее rand станет равным 10, тем быстрее прервем цикл.
🟠Теперь с помощью оператора walrus получим ту же функциональность, используя приведенный ниже код:
import random
while (rand := random.randint(1, 100)) != 10:
print(rand)
print("We got a 10!")
Здесь сообщаем Python, что хотим, чтобы цикл while выполнялся до тех пор, пока значение rand не станет равно 10. Кроме того, сообщаем ему, что rand будет получать свое значение из random.randint(1, 100) с каждой новой итерацией.
📌 Секрет 3. Многоточие (и др. секреты)import matplotlib.pyplot as plt
import seaborn as sns
import scipy
import re
import missingno as mso
from scipy import stats
from scipy.stats import ttest_ind
from scipy.stats import pearsonr
from sklearn.preprocessing import StandardScaler,LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from sklearn.ensemble import GradientBoostingClassifier
from xgboost import XGBClassifier
from sklearn.metrics import accuracy_score,confusion_matrix,classification_report
import pandas as pd
• Чтение CSV-файла
data=pd.read_csv("/content/seattle-weather.csv")
data.head()
• Форма данных
data.shape
(1461, 6)
import warnings
warnings.filterwarnings('ignore')
sns.countplot("weather",data=data,palette='hls')
📌Продолжение
@pro_python_codedb_user и базу данных test_db
Для этого войдёт в консоль psql от пользователя postgres
# su postgres -c psql
и запустим такие SQL-команды:
CREATE USER db_user WITH PASSWORD 'yourPassword';
CREATE DATABASE test_db OWNER db_user;
Затем в каталоге веб-сервера, где хранятся скрипты Python, создадим файл dbconnection.py (и не забываем про chmod 755 !!!) со следующим содержимым:
#!/usr/bin/python3
print('Content-Type: text/html; charset=utf-8 \r\n')
print('<h1>Подключение к БД PostgreSQL</h1>')
import psycopg2 as pgsql
from psycopg2 import OperationalError
try:
connection = pgsql.connect(database='test_db', user='db_user', password='yourPassword', host='localhost', port='5432')
print('<h2>Подключение к базе данных выполнено успешно</h2>')
connection.close()
except OperationalError as error:
print(f'<h2>Ошибка подключения к БД: {error} </h2>')
Проверяем. Запускаем браузер, вводим адрес веб-сервера и путь к скриптам и дописываем после слеша dbconnection.py:
http://IP_или_имя_хоста/scripts/dbconnection.py
В браузере мы должны будем увидеть такую строчку:
Подключение к БД прошло успешно.
@pro_python_codeimport time
start_time = time.time()
# Ваш код, время выполнения которого нужно измерить
end_time = time.time()
execution_time = end_time - start_time
print(f"Время выполнения: {execution_time} секунд")
🔵 Модуль timeit предназначен специально для измерения времени выполнения небольших фрагментов кода. Он предоставляет функцию timeit(), которая автоматически повторяет выполнение кода несколько раз и возвращает среднее время выполнения:
import timeit
code_to_test = """
# Код, время выполнения которого нужно измерить
"""
execution_time = timeit.timeit(code_to_test, number=1000)
print(f"Среднее время выполнения: {execution_time} секунд")
🔵 Модуль line_profiler предоставляет декоратор @profile, который можно использовать для профилирования кода и измерения выполнения каждой строки. Чтобы использовать этот декоратор, необходимо установить line_profiler с помощью pip install line_profiler:
import line_profiler
@profile
def your_function():
# Ваш код, время выполнения которого нужно измерить
pass
your_function()
✅ Измерение времени выполнения влияет на выполнение программы, поэтому его следует использовать только для профилирования и оптимизации кода, а не включать в окончательную версию программы. Это позволит оценить производительность кода и найти места для оптимизации в целях улучшения скорости выполнения.
@pro_python_codedef containsDuplicate(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
uniqueSet = set()
for i in nums:
if i in uniqueSet:
return True
else:
uniqueSet.add(i)
return False
Тогда наше решение будет зависеть от размера списка: O(n). n – количество элементов в списке.
• В другом решении мы просто сравниваем длину множества списка и длину списка.
len(set(list_name)) == len(list_name)
Учитывая природу множества, которое не может содержать дубликатов, это было бы простым решением. Нам необходимо обратить внимание на функцию len(), которая использовалась для определения длины списка. Эта встроенная функция не зависит от размера списка. Независимо от того, содержит ли ваш список 1 элемент или 1000, согласно стандартной реализации Python (CPython), временная сложность равна O(1).
За счет чего это возможно?
ЧитатьPIP INSTALL CUSTOMTKINTER
• Импорт необходимых библиотек
На этом этапе импортируем все библиотеки, которые понадобятся для создания продвинутого GUI:
- Библиотеку CustomTkinter, только что установленную с помощью команды pip.
- Библиотеку Tkinter, которую можно использовать одновременно с модулем CustomTkinter, поскольку некоторые функции являются производными друг от друга.
- Библиотеку Pillow, которая является одной из лучших библиотек Python для обработки различных типов задач, связанных с изображениями. Из библиотеки Pillow импортируем классы ImageTk и Image, что позволит обрабатывать задачи внутри GUI.
# Импортирование библиотеки CustomTkinter для создания продвинутого GUI.
import tkinter
from PIL import ImageTk, Image
• Установка темы и создание фона интерфейса и последующие шагиpip3 install python-telegram-bot
• После установки вставьте этот код в файл telegram-bot.py:
import logging
import os
from telegram import Update
from telegram.ext import (ApplicationBuilder, CommandHandler, ContextTypes,
MessageHandler, filters)
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO
)
TELEGRAM_API_TOKEN = os.getenv("TELEGRAM_API_TOKEN")
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await context.bot.send_message(chat_id=update.effective_chat.id, text="I'm a bot, please talk to me!")
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
await context.bot.send_message(chat_id=update.effective_chat.id, text=update.message.text)
if __name__ == '__main__':
application = ApplicationBuilder().token(TELEGRAM_API_TOKEN).build()
start_handler = CommandHandler('start', start)
echo_handler = MessageHandler(filters.TEXT & (~filters.COMMAND), echo)
application.add_handler(start_handler)
application.add_handler(echo_handler)
application.run_polling()
Продолжение
@pro_python_code
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
