Каталог каналов Новое Каналы в закладках Мои каналы Поиск постов Рекламные посты
Инструменты
Мониторинг Новое Детальная статистика Анализ аудитории Telegraph-статьи Бот аналитики
Полезная информация
Инструкция Telemetr Документация к API Чат Telemetr
Полезные сервисы
Защита от накрутки Создать своего бота Продать/Купить канал Монетизация

Прикрепить Телеграм-аккаунт Прикрепить Телеграм-аккаунт

Телеграм канал «Постоянный репозиторий по Python»

Постоянный репозиторий по Python
189
0
1
0
383
Подписчики
Всего
1 820
Сегодня
0
Просмотров на пост
Всего
376
ER
Общий
17.73%
Суточный
10.8%
Динамика публикаций
Telemetr - сервис глубокой аналитики
телеграм-каналов
Получите подробную информацию о каждом канале
Отберите самые эффективные каналы для
рекламных размещений, по приросту подписчиков,
ER, количеству просмотров на пост и другим метрикам
Анализируйте рекламные посты
и креативы
Узнайте какие посты лучше сработали,
а какие хуже, даже если их давно удалили
Оценивайте эффективность тематики и контента
Узнайте, какую тематику лучше не рекламировать
на канале, а какая зайдет на ура
Попробовать бесплатно
Показано 7 из 189 постов
Смотреть все посты
Пост от 15.10.2025 11:10
150
0
0
Вложенные f-строки: почему раньше нельзя было и зачем теперь можно Что такое f-строки F-строки (форматированные строковые литералы) появились в Python 3.6 как более лаконичный и быстрый способ подстановки переменных в строку. Например: name = "Алиса" print(f"Привет, {name}!") Вывод: Привет, Алиса! Всё просто – выражения внутри фигурных скобок {} вычисляются как обычный Python-код. Ограничение старых версий (до Python 3.12) В версиях до Python 3.12 нельзя было использовать f-строки внутри других f-строк. То есть такой код вызывал ошибку синтаксиса: name = "Bob" print(f"Имя: {f'({name})'}") # ❌ SyntaxError: invalid syntax Python 3.6–3.11 просто не понимал, что внутри фигурных скобок начинается ещё один f-строковый литерал. Причина в том, что парсер f-строк был реализован как «специальный случай» на уровне синтаксиса: он не поддерживал рекурсивный разбор строковых литералов внутри подстановок. Что изменилось в Python 3.12 (PEP 701) С выходом Python 3.12 реализован PEP 701 — Syntactic formalization of f-strings. Он значительно упростил внутреннее устройство f-строк, сделав их полноценными выражениями Python. Теперь f-строки можно: - использовать внутри других f-строк; - передавать в функции; - комбинировать динамически. Пример, который раньше выдавал ошибку, теперь корректно работает: name = "Alice" print(f"Имя: {f'({name})'}") # ✅ Имя: (Alice) Зачем это нужно 1. Динамическое форматирование: Иногда форматируемые фрагменты сами требуют вычислений с подстановками. Например: template = "Пользователь {user}, роль {role}" user = "Admin" role = "root" print(f"В системе: {f'{user} / {role}'}") Удобно при генерации текстов или шаблонов. 2. Упрощение кода генераторов строк: В сложных выражениях, особенно внутри join() или генераторов списков, можно спокойно писать f-строки, не дробя логику: items = [1, 2, 3] print(f"Список: {', '.join([f'элемент {x}' for x in items])}") 3. Единообразие: F-строки теперь ведут себя предсказуемо — как любой другой синтаксис Python. Вы можете вкладывать их столько, сколько нужно, без неожиданного SyntaxError. Совместимость Если вы пишете код, который должен работать на версиях Python до 3.12, не используйте вложенные f-строки. Вместо этого можно собирать строки через промежуточные переменные: adj = ' '.join(f"{j}" for j in range(3)) print(f"Соседи: {adj}") Добавление поддержки вложенных f-строк в Python 3.12 — не просто косметическое изменение. Это шаг к унификации синтаксиса и упрощению парсера, который теперь полностью совместим с другими элементами языка. Для разработчиков это означает меньше ограничений, меньше обходных путей и более чистый код.
🔥 2
1
👍 1
🤝 1
Пост от 09.10.2025 10:41
400
0
0
👍 3
😁 3
Пост от 09.10.2025 10:41
376
0
0
Изображение
🔥 2
Пост от 07.10.2025 17:20
371
0
2
В pandas “window functions” (оконные функции) реализуются с помощью методов .rolling(), .expanding() или .ewm() – в зависимости от типа окна (фиксированное, нарастающее или экспоненциальное). Вот небольшой пример, демонстрирующий, как использовать скользящее окно (rolling) для вычисления среднего и стандартного отклонения. Пример: скользящее среднее и стандартное отклонение продаж import pandas as pd # Создадим примерный DataFrame data = { "date": pd.date_range("2025-01-01", periods=10, freq="D"), "sales": [100, 120, 90, 130, 150, 170, 160, 180, 200, 210] } df = pd.DataFrame(data) # Считаем скользящее среднее и стандартное отклонение по окну = 3 df["rolling_mean"] = df["sales"].rolling(window=3).mean() df["rolling_std"] = df["sales"].rolling(window=3).std() print(df) Результат: date sales rolling_mean rolling_std 0 2025-01-01 100 NaN NaN 1 2025-01-02 120 NaN NaN 2 2025-01-03 90 103.333333 15.275252 3 2025-01-04 130 113.333333 20.816660 4 2025-01-05 150 123.333333 30.550505 ... Другой пример: оконная функция с groupby Если нужно применить оконную функцию по каждой группе (например, по каждому магазину): data = { "store": ["A", "A", "A", "B", "B", "B"], "day": [1, 2, 3, 1, 2, 3], "sales": [10, 12, 15, 8, 9, 11] } df = pd.DataFrame(data) # Скользящее среднее продаж по каждому магазину df["rolling_avg"] = ( df.groupby("store")["sales"] .transform(lambda x: x.rolling(window=2, min_periods=1).mean()) ) print(df) Результат: store day sales rolling_avg 0 A 1 10 10.0 1 A 2 12 11.0 2 A 3 15 13.5 3 B 1 8 8.0 4 B 2 9 8.5 5 B 3 11 10.0
3
👍 1
🥰 1
🤝 1
Пост от 02.10.2025 11:25
471
0
1
1
🔥 1
🥰 1
Пост от 02.10.2025 11:25
436
0
2
Изображение
🔥 2
👍 1
🤝 1
Пост от 01.10.2025 11:06
421
0
2
В pandas для доступа к данным по меткам строк и столбцов есть два основных инструмента: loc и at. На первый взгляд они похожи, но используются немного по-разному. `loc` – универсальный инструмент loc позволяет выбирать данные по меткам (labels), будь то отдельная ячейка, срез строк, список столбцов или даже булева маска. import pandas as pd df = pd.DataFrame({ "name": ["Anna", "Boris", "Clara"], "age": [23, 31, 19] }) # доступ к одной ячейке print(df.loc[1, "name"]) # Boris # выбор диапазона строк print(df.loc[0:1, "age"]) # строки с индексами 0 и 1 # выбор нескольких столбцов print(df.loc[:, ["name", "age"]]) loc работает универсально: может обрабатывать срезы, списки индексов, булевы маски. Однако за универсальность приходится платить скоростью: внутри loc проходит через более общий механизм индексации (.iloc, .iat, .at тоже завязаны на него). `at` – быстрый доступ к одной ячейке at создан для точечного доступа к отдельным значениям. Его синтаксис похож на loc, но он работает только для одной строки и одного столбца. Пример: # получение значения print(df.at[1, "name"]) # Boris # изменение значения df.at[2, "age"] = 20 Здесь at будет быстрее, чем loc, потому что он минует часть проверок и сразу обращается к “ячейке” в памяти. Немного про внутренний разбор • В pandas все методы доступа (iloc, loc, iat, at) реализованы в виде разных интерфейсов к Indexing Engine. • loc вызывает общий механизм _getitem_axis, который умеет работать с метками, срезами и масками. • at – это “обёртка” над loc, оптимизированная для одной пары (row_label, column_label). За счёт этого он не поддерживает списки или срезы, но работает быстрее. Резюме • Используйте loc, если нужны срезы, маски или выборка нескольких элементов. • Используйте at, если нужно быстро получить или изменить один элемент.
👍 6
2
🔥 1
🥰 1
Смотреть все посты