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

Не попадитесь на накрученные каналы! Узнайте, не накручивает ли канал просмотры или подписчиков Проверить канал на накрутку
Прикрепить Телеграм-аккаунт Прикрепить Телеграм-аккаунт

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

Постоянный репозиторий по Python
189
0
1
0
383
Подписчики
Всего
1 846
Сегодня
-1
Просмотров на пост
Всего
365
ER
Общий
19.02%
Суточный
10.5%
Динамика публикаций
Telemetr - сервис глубокой аналитики
телеграм-каналов
Получите подробную информацию о каждом канале
Отберите самые эффективные каналы для
рекламных размещений, по приросту подписчиков,
ER, количеству просмотров на пост и другим метрикам
Анализируйте рекламные посты
и креативы
Узнайте какие посты лучше сработали,
а какие хуже, даже если их давно удалили
Оценивайте эффективность тематики и контента
Узнайте, какую тематику лучше не рекламировать
на канале, а какая зайдет на ура
Попробовать бесплатно
Показано 7 из 189 постов
Смотреть все посты
Пост от 20.11.2025 12:04
111
0
0
👍 1
🔥 1
🥰 1
Пост от 20.11.2025 12:04
109
0
0
Пост от 18.11.2025 12:46
244
0
1
Генетические алгоритмы представляют собой эволюционный метод оптимизации, вдохновлённый принципами естественного отбора. В этом подходе возможные решения задачи рассматриваются как особи в популяции, каждая из которых обладает определёнными характеристиками. Качество решения определяется функцией приспособленности, и чем выше это значение, тем больше вероятность, что данная особь будет выбрана для генерации следующего поколения. В процессе эволюции происходит отбор лучших индивидов, их скрещивание для получения новых комбинаций признаков и случайные мутации, обеспечивающие разнообразие. Со временем популяция всё лучше адаптируется к задаче, постепенно улучшая качество решений. Чтобы продемонстрировать минимальную структуру генетического алгоритма в DEAP, обычно используют классическую тестовую задачу OneMax. Её суть заключается в поиске бинарной строки максимальной приспособленности, где приспособленность определяется простой суммой единиц. Индивид представляет собой список из нулей и единичных значений фиксированной длины, а целью алгоритма является получение строки, состоящей из одних единиц. Благодаря простоте этой задачи можно сосредоточиться на механике работы генетического алгоритма: создании популяции, определении функции фитнеса, выборе операторов селекции, скрещивания и мутации. Это делает OneMax удобным примером для минимального рабочего кода. import random from deap import base, creator, tools, algorithms # Определяем типы creator.create("FitnessMax", base.Fitness, weights=(1.0,)) creator.create("Individual", list, fitness=creator.FitnessMax) toolbox = base.Toolbox() # Ген битов toolbox.register("attr_bool", random.randint, 0, 1) # Индивид и популяция toolbox.register("individual", tools.initRepeat, creator.Individual, toolbox.attr_bool, 20) toolbox.register("population", tools.initRepeat, list, toolbox.individual) # Фитнес-функция def eval_one_max(individual): return (sum(individual),) toolbox.register("evaluate", eval_one_max) # Операторы ГА toolbox.register("mate", tools.cxTwoPoint) toolbox.register("mutate", tools.mutFlipBit, indpb=0.05) toolbox.register("select", tools.selTournament, tournsize=3) def main(): random.seed(42) pop = toolbox.population(n=50) # Начальная оценка fitnesses = list(map(toolbox.evaluate, pop)) for ind, fit in zip(pop, fitnesses): ind.fitness.values = fit for gen in range(20): offspring = toolbox.select(pop, len(pop)) offspring = list(map(toolbox.clone, offspring)) # Cкрещивание for c1, c2 in zip(offspring[::2], offspring[1::2]): if random.random() < 0.5: toolbox.mate(c1, c2) del c1.fitness.values del c2.fitness.values # Мутации for mutant in offspring: if random.random() < 0.2: toolbox.mutate(mutant) del mutant.fitness.values # Переоценка изменённых индивидов invalid = [ind for ind in offspring if not ind.fitness.valid] fits = map(toolbox.evaluate, invalid) for ind, fit in zip(invalid, fits): ind.fitness.values = fit pop[:] = offspring best = tools.selBest(pop, 1)[0] print(f"Поколение {gen}: фитнес = {best.fitness.values[0]}") print("\nЛучший найденный индивид:", best) print("Сумма единиц:", sum(best)) if __name__ == "__main__": main() В итоге задача OneMax служит простым, но показательно эффективным примером применения генетических алгоритмов в DEAP. Она позволяет без лишних деталей понять структуру эволюционного поиска и увидеть, как популяция шаг за шагом улучшает решения за счёт отбора, скрещивания и мутаций. Отработав данный минимальный пример, становится проще переходить к более сложным задачам оптимизации, где фитнес-функция учитывает реальные параметры и имеет куда более сложную структуру.
2
👍 2
🔥 1
🥰 1
Пост от 14.11.2025 10:26
422
0
0
Глобальные и локальные переменные в Python: что нужно знать Работа с областями видимости – одна из тех тем, на которой часто спотыкаются начинающие. Вроде всё просто: переменная есть переменная. Но в Python важно где она объявлена и кто к ней обращается. Разберём ключевые моменты на небольших примерах. 1. Локальные переменные существуют только внутри функции x = 10 # глобальная переменная def foo(): x = 5 # локальная переменная print("Внутри функции:", x) foo() print("Снаружи функции:", x) Локальная переменная x внутри функции полностью скрывает глобальную. Значение x снаружи функции не изменится. 2. Глобальные переменные можно читать, но не изменять x = 10 def bar(): print("Чтение глобальной переменной:", x) # OK bar() Если в функции не создаётся переменная с тем же именем, Python возьмёт значение из глобальной области. Читать глобальные переменные можно свободно – проблемы возникают, когда вы хотите изменить их. 3. Чтобы изменить глобальную переменную – нужен global x = 10 def baz(): global x x = 99 # изменение глобальной переменной baz() print("После изменения:", x) Без ключевого слова global Python создаст локальную переменную x и выдаст ошибку при попытке записи. Используйте global только тогда, когда это действительно необходимо. Часто лучше передавать значения в функцию через аргументы и возвращать результат. Итог - Всё, что объявлено внутри функции, – локально. - Всё, что объявлено вне функции, – глобально. - Глобальные переменные можно читать, но изменять – только через global. - Чем меньше глобальных переменных – тем лучше структура программы.
👍 4
🔥 2
1
🥰 1
Пост от 13.11.2025 09:31
406
0
0
Пост от 13.11.2025 09:31
390
0
1
Пост от 06.11.2025 12:03
400
0
0
🤝 2
🔥 1
Смотреть все посты