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 376 مشتركاً، محتلاً المرتبة 9 841 في فئة التكنولوجيات والتطبيقات والمرتبة 52 034 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 12 376 مشتركاً.
بحسب آخر البيانات بتاريخ 30 أغسطس, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -49، وفي آخر 24 ساعة بمقدار -7، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 7.54%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 3.16% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 933 مشاهدة. وخلال اليوم الأول يجمع عادةً 391 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 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”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 31 أغسطس, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
large_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
if 5 in large_list:
print("5 найден в списке.")
else:
print("5 не найден в списке.")
То же применимо и для множеств (set):
large_set = set(large_list)
if 5 in large_set:
print("5 найден в множестве.")
else:
print("5 не найден в множестве.")
Автоматическое добавление ключа словарю
Если создать словарь средствами collections.defaultdict, добавить хотя бы один элемент, а затем обратиться к несуществующему ключу:
from collections import defaultdict
my_dict = defaultdict(int)
my_dict['apple'] = 3
my_dict ['banana' ] = 2
print(my_dict['orange'])
print(my_dict)
то интерпретатор самостоятельно добавит новый элемент:
... 0
... defaultdict(<class 'int'>, {'apple': 3, 'banana': 2, 'orange': 0})
try / except + else + finally
Мастхэв для начинающих питонистов — пара try / except, обработчик исключений. Шикарным дополнением к такому блоку является, на мой взгляд, else: он опишет поведение программы на случай других ошибок, которых может быть немало!
Более того, добавив finally, вы выполните завершающие работы, например, скомандуете выслать уведомление:
try:
>>> result = 10 / 2
>>> except ZeroDivisionError:
>>> print( "Ошибка: деление на ноль невозможно.")
>>> else:
>>> print("Результат:", result)
>>> finally:
>>> print( "Программа выполнена.")
... Результат: 5.0
... Программа выполнена.
Проверка существования переменной с помощью «моржового» оператора
Если мы объявили две переменные, но не задали любой из них значение, то с помощью оператора := (Walrus Operator) можно спасти программу от падения и добавить обрабатывающую логику. В первом случае, в переменные name1, name2 мы ничего не записали, значит, программа зайдет в блок else:
>>> if name == '__main__':
>>> name1, name2 = '', ''
>>>
>>> if name := name1 or name2:
>>> print(name1)
>>> print('Успешно!')
>>> else:
>>> print('Имя не найдено...')... Имя не найдено...
Во втором случае заполнена только одна из переменных, но программа отработает без ошибки:
>>> if name == '__main__':
>>> name1, name2 = 'Сергей', ''
>>>
>>> if name := name1 or name2:
>>> print(name1)
>>> print('Успешно!')
>>> else:
>>> print('Имя не найдено...')
... Сергей
... Успешно!
Оператор match для проверки типа
Теперь освоение новых библиотек у вас точно ускорится.
Порой, трудно понять, какой тип данных возвращает функция или метод. В таких случаях помогают match и встроенные функции приведения к тому или иному типу данных:
>>> var = 1
>>>
>>> match var:
>>> case str():
>>> print('Строковый тип')
>>> case bool():
>>> print('Булевый тип')
>>> case float():
>>> print('Число с плавающей запятой')
>>> case int():
>>> print('Целочисленный тип')
>>> case list():
>>> print('Список')
>>> case None:
>>> print("None")
>>> case _:
>>> print('Другой тип данных')... Целочисленный тип
Встроенные функции попытаются привести к своему значению переменную. Но если положить в var единицу, как примере выше, то мы минуем float().
Чтобы программа не упала, стоит заложить дальнейшую обработку var только в подходящие функции-наследнице кейсы.
Включение генераторов, сетов
В предыдущей статье с фишками я рассказывала, что есть эффективный способ генерировать списки — «списковое включение» (List Comprehension):
names = ['Данил','Михаил', 'Оля']
[x for x in names if"a"in x]] # Выберет имена, где есть "а"... ['Данил', 'Михаил']
Оказывается, этому поддаются и другие составные типы — генераторы и сеты.
>>> s = {s*2 for s in range(10)} # Перемножит числа 1-10 на два
>>> print(s)
... {0, 2, 4, 6, 8, 10, 12, 14, 16, 18}
@pro_python_codem = 3
# don't use this
if m == 1 or m == 2 or m == 3 or m == 4:
print("if statement 1")
# use this
if m in [1, 2, 3, 4]:
print("if statement 1")
• Обмен двумя переменными
Python предоставляет возможность делать назначения и менять их местами в одной строке.
x, y = 5, 10
print(x, y) # 5 10
x, y = y, x
print(x, y) # 10 5
• Использование тернарного оператора для условного присваивания
Тернарные операторы – это краткое обозначение операторов if-else в одной строке.
# if_true if expression else if_false
condition = True
print("Condition is True" if condition else "Condition is False")
• Перечисление встроенных функций
С помощью перечислителей можно работать как с индексом, так и со значением, когда вы находитесь в цикле.
my_list = [10, 20, 30, 40]
for i, value in enumerate(my_list):
print(i, value)
# 0 10
# 1 20
# 2 30
# 3 40
• Функция Zip
Функция zip объединяет элементы из нескольких итерируемых объектов в кортежи.
list1 = [1, 2, 3, 4, 5]
list2 = [5, 4, 3, 2, 1]
print(zip(list1, list2))
# [(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)]
• Создание словарей с помощью функции Zip
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
# {1:4, 2:5, 3:6}
print(dict(zip(tuple1, tuple2)))!pip install nltk
!pip install pandas
import pandas as pd
import nltk
from nltk.tokenize import sent_tokenize,word_tokenize
from nltk.stem import PorterStemmer
from nltk.corpus import stopwords
import re
Обзор данных
▪Следующим этапом проекта будет загрузка датасета. В данном случае мы будем использовать набор данных твитов о катастрофах из Kaggle.
▪Мы можем загрузить наш датасет с помощью библиотеки pandas.
df = pd.read_csv("/train.csv")
▪Для того чтобы получить общее представление о данных, мы можем просмотреть верхние строки набора данных с помощью функции head в pandas:
df.head(10)
Для анализа столбца ключевых слов мы используем библиотеку seaborn, которая позволяет визуализировать распределение ключевых слов и их корреляцию с целью.
plt.figure(figsize=(10,70))
sns.countplot(data=df,y="keyword",hue="target",saturation=0.50)
plt.legend(bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0)
plt.show()
📌 Продолжение
@data_analysis_ml