Python Portal
Всё самое интересное из мира Python Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3GMMF6
Mostrar más📈 Análisis del canal de Telegram Python Portal
El canal Python Portal (@pythonportal) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 50 982 suscriptores, ocupando la posición 2 541 en la categoría Tecnologías y Aplicaciones y el puesto 12 059 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 50 982 suscriptores.
Según los últimos datos del 28 agosto, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -384, y en las últimas 24 horas de -15, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 9.36%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 4.72% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 4 770 visualizaciones. En el primer día suele acumular 2 408 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 19.
- Intereses temáticos: El contenido se centra en temas clave como строка, none, true, модуль, peter.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Всё самое интересное из мира Python
Сотрудничество, реклама: @devmangx
Менеджер: @Spiral_Yuri
РКН: https://clck.ru/3GMMF6”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 29 agosto, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
+? Для чисел — это сложение; для строк — конкатенация; для списков — объединение. Это и есть перегрузка операторов в действии.
Перегрузка операторов означает задание специального поведения для операторов (+, -, *, == и т. д.) в ваших пользовательских классах. Вы определяете, как эти операторы должны работать с вашими объектами.
👉 @PythonPortalnpm i browser-whisper
GitHub-репозиторий ↓
https://github.com/tanpreetjolly/browser-whisper
👉 @PythonPortaluser_input = request.form['username']
query = f"SELECT * FROM users WHERE username = '{user_input}'"
cursor.execute(query)
Когда вы пишете код таким образом, опасность заключается в том, как формируется SQL-запрос до того, как он попадет в базу данных. Прежде чем база данных увидит запрос, Python вставляет ввод пользователя напрямую в SQL-строку. База данных получает уже готовое SQL-выражение и просто выполняет его. У базы данных нет способа понять, какая часть — это данные, а какая — SQL-логика. Риск в том, что данные могут изменить логику программы.
Когда вы используете подготовленные выражения:
user_input = request.form['username']
query = "SELECT * FROM users WHERE username = ?"
cursor.execute(query, (user_input,))
Вы отделяете SQL-запрос от входных данных. Вместо того чтобы вставлять значения прямо в строку запроса, вы разделяете SQL-логику и ввод пользователя. Теперь база данных воспринимает ввод как данные, а не как выполняемый SQL-код. Вот в чем заключается суть защиты.
👉 @PythonPortalif для подсчёта элементов. Используйте defaultdict.
У вас есть список элементов, и вы хотите узнать, сколько раз каждый элемент встречается в списке. Частый шаблон у начинающих выглядит примерно так:
counts = {}
for item in items:
if item in counts:
counts[item] += 1
else:
counts[item] = 1
Это работает, но код довольно многословный и поэтому не очень по питонски. Лучший способ — использовать defaultdict из модуля collections. Вот как будет выглядеть код при использовании этого метода:
from collections import defaultdict
counts = defaultdict(int)
for item in items:
counts[item] += 1
defaultdict — это специальный тип словаря из модуля collections в Python. Ключевая идея в том, что он автоматически создаёт значение по умолчанию для ключей, которые ещё не существуют.
В этом коде, когда мы пишем:
counts = defaultdict(int)
мы говорим Python, что если ключ отсутствует, нужно создать его и присвоить ему значение по умолчанию, возвращаемое int(), то есть 0. Это означает, что каждый новый ключ начинается с 0, и к нему добавляется 1, если элемент встречается более одного раза. Никакой инструкции if не требуется.
Этот вариант намного лучше: он менее многословный, не требует ручных проверок и поэтому менее подвержен ошибкам.
👉 @PythonPortalIN с NULL
Оператор IN относится к тем конструкциям, которые легко вносят тихие баги в запрос, если использовать его неправильно. Когда вы включаете NULL в список IN, сравнение никогда не даст TRUE для части с NULL. В результате строки, содержащие NULL, не матчятся так, как многие ожидают. SQL использует трёхзначную логику: TRUE, FALSE и UNKNOWN. Сравнения с NULL не возвращают ни TRUE, ни FALSE; они возвращают UNKNOWN. Вот наивный вариант использования IN:
SELECT *
FROM Employees
WHERE DepartmentID IN (1, 2, NULL);
Поскольку NULL даёт UNKNOWN, запрос выше выполнится без ошибок, но гарантированно вернёт пустой результат.
Правильный способ обрабатывать NULL - использовать IS NULL. IS NULL явно учитывает то, как SQL работает с отсутствующими значениями. Это помогает запросу корректно различать реальные значения и неизвестные значения, что предотвращает тихие логические ошибки. Вот как этот запрос лучше писать:
SELECT *
FROM Employees
WHERE DepartmentID IN (1, 2)
OR DepartmentID IS NULL;
👉 @PythonPortal