Python/ django
по всем вопросам @haarrp @itchannels_telegram - 🔥 все ит каналы @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - 📚 @pythonlbooks РКН: clck.ru/3FmxmM
显示更多📈 Telegram 频道 Python/ django 的分析概览
频道 Python/ django (@pythonl) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 60 010 名订阅者,在 技术与应用 类别中位列第 2 209,并在 俄罗斯 地区排名第 10 256 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 60 010 名订阅者。
根据 10 六月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -595,过去 24 小时变化为 -15,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 6.91%。内容发布后 24 小时内通常能获得 3.31% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 4 148 次浏览,首日通常累积 1 986 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 20。
- 主题关注点: 内容集中在 github, claude, контекст, архитектура, api 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“по всем вопросам @haarrp
@itchannels_telegram - 🔥 все ит каналы
@ai_machinelearning_big_data -ML
@ArtificialIntelligencedl -AI
@datascienceiot - 📚
@pythonlbooks
РКН: clck.ru/3Fmxm...”
凭借高频更新(最新数据采集于 11 六月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
def remove_duplicates(first):
if not first:
return
nextone = first
while nextone:
runner = nextone
while runner.next:
if runner.next.val == nextone.val:
runner.next = runner.next.next
else:
runner = runner.next
nextone = nextone.next
return first
Функция remove_duplicates принимает на вход один аргумент first, в который мы передаем начало списка.
Далее создаем переменную nextone, которая инициализируется значением first. nextone используем для перемещения по списку, она указывает на текущий элемент. То есть эта переменная является первым указателем. Переменная runner — второй указатель.
🟡Метод с использованием хеш-таблицы
Этот подход к удалению дубликатов в связанном списке использует хеш-таблицу, чтобы отслеживать пройденные уникальные значения.
def remove_duplicates(list_head):
if not list_head:
return
seen = set()
current = list_head
prev = None
while current:
if current.val in seen:
prev.next = current.next
else:
seen.add(current.val)
prev = current
current = current.next
return list_head
Функция remove_duplicates принимает на вход один аргумент list_head, в который мы передаем начало списка. Она проверяет, пуст ли список. Если да, она возвращает результат и завершает работу. Если в списке содержится хотя бы один элемент, функция начинает их обрабатывать.
Далее создаем множество seen, которое будем использовать для отслеживания уникальных значений связанного списка.
📎 Подробнее
@pythonllst = [1, 2, 3]
Обратимся к несуществующему элементу списка:
print(lts[4])
После выполнения кода выведется ошибка (исключение):
IndexError: list index out of range
🟡Если же нам нужно продолжить работу без вывода исключения, его следует поймать с помощью конструкции try-except. Она имеет следующий синтаксис:
try: # код, вызывающий исключение except: # обработка ошибки🟡В блоке
try следует размещать код, который может содержать исключение. Если вдруг при выполнении этого кода возникнет исключительная ситуация, то выполнение кода не остановится, а перейдет в код блока except. В данном блоке следует прописать вывод сообщения, максимально точно описывающего суть возникшей ошибки.
Если же при выполнении блока try никаких исключительных ситуаций не случилось, то полезный код просто выполнится, а код из блока except - нет.
🟡Давайте отловим наше исключение при обращении к несуществующему элементу списка. Для этого в блок try поместим код с потенциальной ошибкой. А в блоке except укажем вывод в консоль сообщения 'error: elem is not exist':
lst = [1, 2, 3]
try:
print(lst[4])
except:
print('error: elem is not exist')
После выполнения кода выведется:
'error: elem is not exist'
🟡После изучения конструкции try-except стиль написанного вами кода должен измениться. Теперь все места, в которых может возникнуть исключительная ситуация, нужно оборачивать в try, а в блоке except прописывать реакцию на это исключение.
📎 Ссылка на задачи для закрепления
@python_job_interview'1/3+2/3', как видно она содержит математическое выражение.
Существует ли в Python модуль, который вычисляет значение таких выражений?
▶️С точки зрения безопасности, производительности и гибкости лучше воспользоваться numexpr
(в отличие от eval()):
# pip install numexpr
import numexpr as ne
print(ne.evaluate('1/3+2/3'))
# 1.0
Кстати, numexpr поддерживает использование переменных, поддерживает NumPy, SciPy и т.д.
📎 Здесь подробнее про данный модуль
@pythonla + b, конкретное поведение операции + определяют типы a и b. Каждый тип в Python имеет собственную реализацию оператора + (если этот тип поддерживает +), и интерпретатор Python сам выбирает подходящую реализацию для вызова на основании типа операндов. Весь этот процесс называется динамической диспетчеризацией.
И перед тем, как произойдёт само действие a + b, под капотом происходит очень много всего, что и описывается в статье.
А вот схема выполнения операции a + b в Python:
⏩Код на Python компилируется в байт-код, исполняемый стековой виртуальной машиной (VM) в CPython. Команда BINARY_OP отвечает за исполнение операции + с двумя операндами, a и b
⏩Сама VM не знает, как выполнять + с двумя объектами. Она делегирует эту задачу абстрактному интерфейсу объектов
⏩Абстрактный интерфейс объектов в CPython определяет интерфейс, поддерживающий стандартные операции уровня объектов в CPython. Это позволяет VM единым унифицированным образом исполнять все операторы, не зная подробностей реализации системы объектов. Абстрактный интерфейс диспетчеризирует исполнение конкретной реализации внутри типов при помощи таблицы поиска указателей функций в заголовке объекта
📎 Статья
📎 Ещё одна статья в тему
@pythonl--enable-experimental-jit. Для работы JIT требуется установка LLVM в качестве дополнительной зависимости.
📎 Подробнее
@pythonl
git clone https://github.com/chm0dx/creepyCrawler.git
cd creepyCrawler
pip install -r requirements.txt
• Github
@linuxkalii
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
