Python/ django
по всем вопросам @haarrp @itchannels_telegram - 🔥 все ит каналы @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - 📚 @pythonlbooks РКН: clck.ru/3FmxmM
Больше📈 Аналитический обзор Telegram-канала Python/ django
Канал Python/ django (@pythonl) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 60 075 подписчиков, занимая 2 192 место в категории Технологии и приложения и 10 214 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 60 075 подписчиков.
Согласно последним данным от 05 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -562, а за последние 24 часа — -8, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 6.76%. В первые 24 часа после публикации контент обычно набирает 3.58% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 4 065 просмотров. В течение первых суток публикация набирает 2 153 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 15.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как github, claude, контекст, архитектура, api.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“по всем вопросам @haarrp
@itchannels_telegram - 🔥 все ит каналы
@ai_machinelearning_big_data -ML
@ArtificialIntelligencedl -AI
@datascienceiot - 📚
@pythonlbooks
РКН: clck.ru/3Fmxm...”
Благодаря высокой частоте обновлений (последние данные получены 07 июня, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
eval, скрытые майнеры, необфусцированные ключи
🚀 Как использовать
python -m starguard.cli owner/repo --format markdown --plot stars.png
🔹 Без GitHub-токена работает, но лимит — 60 запросов/час
🔹 С GITHUB_TOKEN — до 5000 запросов
🎯 Кому полезно
• DevOps-командам — для верификации OSS-зависимостей
• Безопасникам — для быстрой проверки на supply chain угрозы
• Инвесторам — чтобы не попасть на проекты с "накрученной" популярностью
• Open Source авторам — для прозрачности и Trust Badge
🔗 GitHub
💡 Инструмент, который показывает, что за красивыми графиками звёзд часто стоит маркетинг, а не код. Умей фильтровать — ставь охрану у репозитория.
@pythonllist и dict
📌 Условие
Что выведет следующий код?
def append_to_list(value, my_list=[]):
my_list.append(value)
return my_list
print(append_to_list(1))
print(append_to_list(2))
print(append_to_list(3))
❓ Вопросы
1. Почему результат выглядит неожиданно?
2. Как исправить это поведение?
3. Когда стоит использовать изменяемые аргументы по умолчанию — если вообще стоит?
🔍 Разбор
✅ Ожидаемый вывод:
[1] [1, 2] [1, 2, 3]🔧 Почему так происходит - Аргументы по умолчанию вычисляются один раз — во время определения функции, а не при каждом вызове. - Значение
my_list=[] создаётся один раз и затем используется повторно при всех вызовах.
- Все вызовы append_to_list изменяют один и тот же список.
⚠️ Подвох
Это один из самых коварных багов в Python, особенно среди начинающих — кажется, что my_list должен быть новым на каждый вызов, но это не так.
🧠 Вывод
- Никогда не используй изменяемые типы (list, dict, set) как значения по умолчанию.
- Вместо этого используй None и создавай новый объект вручную:
def append_to_list(value, my_list=None):
if my_list is None:
my_list = []
my_list.append(value)
return my_list
✅ Тогда вывод будет:
[1] [2] [3]📌 Это правило относится ко всем изменяемым типам:
[], {}, set() и кастомные классы.
git clone https://github.com/chungmin99/pyroki.git
cd pyroki
pip install -e .
Требуется Python 3.12+ (частичная поддержка Python 3.10–3.11).
PyRoki — это:
- 📐 Удобный фреймворк для исследований в области робототехники.
- 🛠️ Подходит как для академических, так и для прикладных задач.
- 🌐 Гибкий и масштабируемый — от одного робота до больших motion-баз.
Если интересен пример интеграции с ROS, Gazebo или симуляцией цифрового двойника — дай знать, покажу!
🔗 Репозиторий
#Python #Robotics #Kinematics #InverseKinematics #MotionPlanning #OpenSource
@pythonlsum(), sorted(), Counter. Все числа в списке представлены как строки.
Пример:
import random
original = [str(i) for i in range(1, 101)]
missing = random.choice(original)
shuffled = original.copy()
shuffled.remove(missing)
random.shuffle(shuffled)
Напиши функцию:
def find_missing_number(data: list[str]) -> int:
...
📌 Подвох:
Нельзя просто сложить строки. Но можно использовать свойство XOR:
a ^ a = 0 0 ^ b = bТо есть: если мы сделаем XOR всех чисел от 1 до 100, а затем XOR всех чисел в переданном списке — результатом будет пропущенное число. 🧠 Решение: ```python def find_missing_number(data: list[str]) -> int: xor_full = 0 xor_data = 0 for i in range(1, 101): xor_full ^= i for val in data: xor_data ^= int(val) return xor_full ^ xor_data ``` ✅ Пояснение: -
xor_full — XOR всех чисел от 1 до 100.
- xor_data — XOR всех чисел в текущем списке (`str` → `int`).
- Разность xor_full ^ xor_data вернёт единственное отсутствующее число.
🎯 Пример использования:
```python
original = [str(i) for i in range(1, 101)]
original.remove("42")
random.shuffle(original)
print(find_missing_number(original)) # → 42
```
🔥 Эта задача хороша тем, что:
• содержит хитрый запрет на sum()
• требует знания побитовых операций
• работает с типами (`str` vs `int`)
• подходит для собеседования уровня middle+
@pythonl
sudo apt install ffmpeg
pip install TTS soundfile torchaudio gradio
git clone https://github.com/coqui-ai/TTS.git
cd TTS
pip install -e .
🎙️ 1. Подготовка записи голоса
Тебе нужен файл .wav:
- продолжительность: от 1 минуты
- формат: моно, 16 кГц, 16-bit
Пример конвертации:
ffmpeg -i input.mp3 -ac 1 -ar 16000 output.wav
🧬 2. Генерация эмбеддинга твоего голоса
from TTS.tts.configs.xtts_config import XttsConfig
from TTS.tts.models.xtts import Xtts
config = XttsConfig()
model = Xtts.init_from_config(config)
model.load_checkpoint("tts_models/multilingual/multi-dataset/xtts_v2")
voice_sample = "your_voice.wav"
speaker_embedding = model.get_speaker_embedding(voice_sample)
📤 3. Генерация речи с твоим голосом
text = "Привет! Я теперь могу говорить твоим голосом."
wav = model.tts(text, speaker_embedding=speaker_embedding)
model.save_wav(wav, "output.wav")
💻 4. (Опционально) Интерфейс с Gradio
import gradio as gr
def speak(text):
wav = model.tts(text, speaker_embedding=speaker_embedding)
path = "generated.wav"
model.save_wav(wav, path)
return path
gr.Interface(fn=speak, inputs=gr.Textbox(), outputs=gr.Audio()).launch()
✅ Быстрый способ (через CLI)
tts --model_name "tts_models/multilingual/multi-dataset/xtts_v2" \
--text "Привет, мир!" \
--speaker_wav path/to/your.wav \
--out_path output.wav
⚠️ Важно
- 💻 Работает на CPU, но лучше с GPU.
- 🌐 Поддерживает русский язык.
@pythonlcall_limiter, который:
- ограничивает функцию f максимум до n вызовов
- после n вызова функция больше не вызывается, а возвращает строку "LIMIT REACHED"
Пример использования:
@call_limiter(3)
def greet(name):
return f"Hello, {name}!"
print(greet("Alice")) # Hello, Alice!
print(greet("Bob")) # Hello, Bob!
print(greet("Charlie"))# Hello, Charlie!
print(greet("Dave")) # LIMIT REACHED
🎯 Подвохи:
- Нужно создать декоратор-фабрику с аргументом n
- Внутри должна быть функция с nonlocal, чтобы отслеживать число вызовов
- Часто путаются и используют mutable default, что ломает независимость между декорируемыми функциями
✅ Решение:
```python
def call_limiter(n):
def decorator(func):
count = 0
def wrapper(*args, **kwargs):
nonlocal count
if count >= n:
return "LIMIT REACHED"
count += 1
return func(*args, **kwargs)
return wrapper
return decorator
```
🧪 **Проверка:**
```python
@call_limiter(2)
def ping():
return "pong"
print(ping()) # pong
print(ping()) # pong
print(ping()) # LIMIT REACHED
@call_limiter(1)
def echo(msg):
return msg
print(echo("hi")) # hi
print(echo("bye")) # LIMIT REACHED
```
🧠 **Что проверяет задача:**
• Понимание функций высшего порядка
• Работа с `nonlocal` и областью видимости
• Контроль состояния внутри декоратора
• Умение не "засорить" глобальные или общие области
@pythonl
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
