Поколение Python 🐍

@pygen_ru


"Поколение Python" — серия курсов, посвященных языку Python, разработанная Тимуром и его командой (BEEGEEK 🐝).

Сайт: pygen.ru
Мерч: shop.pygen.ru
Чат: @pygen_ru_comments
Бот: @pygen_ru_bot
Поддержка: @pygen_ru_support
YouTube: youtube.com/@pygen_ru

Поколение Python 🐍

21 Oct, 11:04


Друзья, возвращаемся к вам с новым словом недели! Сегодня поговорим о сериализации. 😎

⭐️ Сериализация является важной частью разработки ПО и широко используется в различных областях. Она позволяет сохранять состояние объектов между запусками программы, а также передавать данные по сети или между компонентами системы.

⭐️ Главная идея состоит в том, что сериализованный формат — это набор байтов или строка, которую, в отличие от самого объекта, можно легко сохранить на диск или передать другой программе. А значит, задача сохранения данных сводится к простому сохранению набора байтов (бинарный формат) или строки (текстовый формат).

⭐️ Процесс, преобразующий данные из сериализованного формата обратно в объект, называется десериализацией. В результате десериализации мы восстанавливаем объект с его исходным состоянием.

⭐️ Многие языки программирования включают инструменты сериализации и десериализации данных. Например, Python предоставляет модуль json для сериализации в текстовый формат и модуль pickle для сериализации в бинарный формат.

Почитать подробнее о сериализации и десериализации можно по ссылке.

Ставьте реакцию:

❤️ — если знали, что такое сериализация
👀 — если слышите о ней впервые

🔝🔝🔝Сохраняйте пост в избранное, точно пригодится! ✍🏻

#словонедели #поколениеpython

Поколение Python 🐍

21 Oct, 06:31


Друзья, сегодня решаем задачу про самое дорогое в жизни каждого человека — про котиков! 🐈‍⬛

У Тимура трое котов: Кемаль, Матеша и Сырок. Артур пришел к Тимуру в гости, и между ними произошел диалог.

Артур: Сколько лет твоим котикам?
Тимур: Произведение их возрастов равно 36.
Артур: Информации недостаточно.
Тимур: Сумма возрастов моих котов равна номеру дома, в котором ты живешь.
Артур: Информации все еще недостаточно.
Тимур: Младший кот — черный.

После этого Артур сумел назвать возраст всех котов Тимура. А вы справитесь? 🧐

Пишите ответы и ход своих размышлений в комментариях, не забывая про скрытый текст.

Ставьте реакцию:

🔥 — если решили задачу быстро
👀 — если пришлось поломать голову

#задача

Поколение Python 🐍

20 Oct, 12:03


Друзья, подводим итоги розыгрыша худи! 🥳

Победителем стал Evgen Yakubovskiy. Он получит фирменное худи с любым дизайном от "Поколения Python" на выбор. 🎁

Проверить результат розыгрыша можно по ссылке. 🎲

Ставьте реакцию:

❤️ — если рады за победителя от всего сердца
😈 — если рады, но не от всего сердца 🤣

На новой неделе мы проведем еще один конкурс — разыграем Telegram-премиум среди подписчиков нашего канала. Не пропустите! 😉

#розыгрыш #итоги

Поколение Python 🐍

19 Oct, 13:39


Друзья, а вот и разбор задач про количество цифр в числе. 😎

1️⃣ Поскольку нам известно значение логарифма log₁₀14, воспользуемся свойством логарифма, которое позволяет вынести показатель степени подлогарифмического выражения за логарифм, и найдем значение десятичного логарифма числа 14²⁰:

🟢log₁₀14²⁰ = 20⋅log₁₀14 = 20⋅1.1461 ≈ 22.922

Округлим до ближайшего целого в меньшую сторону и добавим единицу:

🟢⌊22.922⌋ + 1 = 22 + 1 = 23

Таким образом, число 14²⁰ имеет 23 цифры.

2️⃣ Поскольку нам известны значения логарифмов log₁₀2 и log₁₀3 , воспользуемся свойствами логарифма, которые позволяют вынести показатель степени подлогарифмического выражения за логарифм и записать логарифм произведения в виде суммы логарифмов, чтобы упростить выражение, после чего найдем значение десятичного логарифма числа 48¹². Вынесем показатель степени подлогарифмического выражения за логарифм и представим число 48 в виде произведения чисел 2 и 3:

🟢log₁₀48¹² = 12⋅log₁₀48 = 12⋅log₁₀(2⁴⋅3) = 12⋅(4⋅log₁₀2 + log₁₀3) ≈ 12⋅(4⋅0.301 + 0.4771) ≈ 20.1732

Округлим до ближайшего целого в меньшую сторону и добавим единицу:

🟢⌊20.1732⌋ + 1 = 20 + 1 = 21

Таким образом, число 48¹² имеет 21 цифру.

Ставьте 🔥 к посту, если справились с задачами.

#разборзадач

Поколение Python 🐍

19 Oct, 09:48


Друзья, разбираем задачу про раскрашенные кубики! 😻

📍 Сначала посчитаем, сколько вариантов раскраски кубика можно сделать с учетом повторений. Для этого представим, что мы взяли кубик, и он никак не вращается. Тогда мы можем раскрасить грани кубика следующим образом:

🔘переднюю — в 6 цветов
🔘заднюю — в 5 цветов
🔘верхнюю — в 4 цвета
🔘нижнюю — в 3 цвета
🔘левую — в 2 цвета
🔘правую — в 1 цвет

Чтобы найти общее количество вариантов раскрасок, нужно перемножить эти числа:

🔘1 ⋅ 2 ⋅ 3 ⋅ 4 ⋅ 5 ⋅ 6 = 720

Это максимальное количество всех вариантов окраски. Среди них обязательно будут неуникальные варианты, когда мы развернем кубик и получим точно такой окрас, как и в другом случае.

📍 Теперь посчитаем, сколько различных положений на старте может принимать кубик. Так мы узнаем количество повторов, которые получатся при окраске.

Когда мы берем кубик в руки лицом к себе, мы можем сделать это шестью разными способами, потому что у кубика 6 граней. Еще мы можем 4 раза вращать его по часовой стрелке, глядя на ту же лицевую сторону. Получается, у нас есть 24 варианта, чтобы зафиксировать кубик в одной позиции на старте. Это и есть количество повторов при окраске, потому что мы можем повернуть кубик так, как нам нужно, чтобы найти дубль.

📍 В итоге у нас есть 720 вариантов окраски и 24 положения на старте. Теперь мы можем узнать количество уникальных окрасок кубика, разделив одно на другое:

🔘720 / 24 = 30

Таким образом, Кемаль сможет отправить уникальные кубики только 30 победителям розыгрыша, а 2 остальных получат уже неуникальную раскраску.

Ставьте ❤️ к посту, если справился с задачей. 😎

📍 Если у вас тоже есть интересные задачи, отправляйте их в наш телеграм-бот @pygen_ru_bot. 👌

#разборзадачи

Поколение Python 🐍

18 Oct, 14:18


Друзья, слепой метод набора на клавиатуре был изобретен аж в 1878 году! 😱 Благодаря ему офисный клерк Франк Макгуррин выиграл 500 долларов на соревнованиях по скоропечатанию со скоростью 97 слов в минуту.

Предлагаем проверить вашу скорость набора с помощью клавиатурных гонок! 🏎 Участвуйте и пишите свой результат в комментариях. Посмотрим, кто тут самый быстрый программист. 😎

Ставьте реакции:

🔥 — если владеешь слепым десятипальцевым методом
👀 — если двумя пальцами тык-тык

#слепойметодпечати

Поколение Python 🐍

18 Oct, 06:45


Друзья, а вы знали, что начиная с Python 3.11 существует ограничение на преобразования между типами int и str ? 🥲

📍 В Python 3.11 и выше при преобразовании строки в целое число и наоборот длина исходной или итоговой строки не должна превышать 4300 символов.

Например, преобразование int('1' * 4300) завершится успешно, однако преобразование int('1' * 4301) вызовет ошибку ValueError: Exceeds the limit (4300) for integer string conversion.

⭐️ Такое ограничение было добавлено в Python для защиты от атак типа "отказ в обслуживании" и применяется к числам в десятичной или другой системе счисления, основание которой не является степенью двойки.

⭐️ Дело в том, что целые числа в Python представляют собой числа произвольной длины, хранящиеся в двоичном виде. Не существует быстрого алгоритма для преобразования строки в двоичное целое число или двоичного целого числа в строку, поэтому такие преобразования могут выполняться долго даже на быстром процессоре. Этим и пользуются злоумышленники.

🔘 Ограничение в 4300 символов можно изменить с помощью функции set_int_max_str_digits() встроенного модуля sys, однако этого лучше не делать без крайней необходимости.

Почитать подробнее об ограничении на преобразования между типами int и str в Python можно по ссылке.

Ставьте реакцию:

😎 — если знали об этом ограничении
👀 — если узнали о нем впервые

🔝🔝🔝Сохраняйте пост в избранное, точно пригодится! ✍🏻

#поколениеpython #int #str

Поколение Python 🐍

17 Oct, 09:26


Друзья, недавно мы рассказывали про головоломку "Ханойские башни". Принесли вам возможность поиграть в нее не только на экране компьютера! 😍

🟢Ханойские башни в онлайн-магазине "Поколения"

Наша головоломка состоит аж из 10 колец, что позволяет менять уровень сложности: от самого простого с 3 кольцами до взрывающих мозг 8-10 колец. Кстати, самое короткое решение для 10 колец состоит из 1023 ходов. 😱

Игра "Ханойские башни" станет отличным подарком для программиста, а также поможет развить логическое мышление у детей. Игра упакована в пластиковый кейс, в котором ее удобно хранить и перевозить.

Помимо ханойских башен, вы можете купить в нашем магазине настольные игры серии Brainy Trainy, которые, как следует из названия, помогут потренировать мозг:

🟢Brainy Trainy "Программирование"
🟢Brainy Trainy "Инженерное мышление"
🟢Brainy Trainy "Логика"
🟢Brainy Trainy "Развитие памяти"
🟢Brainy Trainy "Железная логика"

🎁 Всем, кто купит игру "Ханойские башни" до 25 октября, в подарок также положим настольную игру "Тетрис-Дженга" и резиновую уточку. 🦆

⚠️⚠️⚠️⚠️⚠️ А еще вы можете получить дополнительные подарки на сайте магазина, раскрутив колесо фортуны. 🍀

Поддержите нас лайком ❤️ (и покупкой 😂) — мы очень старались!

#мерч #ханойскиебашни

Поколение Python 🐍

16 Oct, 10:12


Друзья, принесли вам две любопытные задачки на определение количества цифр в числах. 😎

1️⃣ Первая задача простая:

Определите количество цифр в числе 14²⁰, если известно, что log₁₀14 ≈ 1.1461.

2️⃣ Вторая задача немного сложнее:

Определите количество цифр в числе 48¹², если известно, что log₁₀2 ≈ 0.301 и log₁₀3 ≈ 0.4771.

💡Подсказка: воспользуйтесь свойствами логарифмов 4 и 6, указанными в посте.

Ставьте реакцию:

🔥 — если решили быстро
👀 — если пришлось поломать голову

#задача #логарифм

Поколение Python 🐍

16 Oct, 06:59


Друзья, вы наверняка сталкивались с классической задачей — подсчет количества цифр в целом положительном числе. Сегодня разберем решение этой задачи с помощью логарифма.

Чтобы понять основную идею этого решения, рассмотрим значения десятичных логарифмов некоторых положительных целых чисел:

🟢log₁₀81 = 1.9084
🟢log₁₀100 = 2
🟢log₁₀167 = 2.2227
🟢log₁₀718 = 2.856
🟢log₁₀1000 = 3

Несложно заметить, что десятичные логарифмы трехзначных чисел заключены в пределах от 2 включительно до 3 не включительно. Действительно, если нам дано некоторое трехзначное число n, то для него справедливо неравенство:

🟢10² ≤ n < 10³

Прологарифмировав все части неравенства по основанию 10, получим следующее:

🟢log₁₀10² ≤ log₁₀n < log₁₀10³
🟢2 ≤ log₁₀n < 3

Тогда если округлить десятичный логарифм трехзначного числа n до ближайшего целого в меньшую сторону и добавить к результату единицу, получится число 3 — количество цифр в числе. Например, для числа 718, десятичный логарифм которого равен 2.856:

🟢⌊2.856⌋ + 1 = 2 + 1 = 3

Теперь предположим, что нам дано некоторое число n, которое состоит из d цифр. Для такого числа справедливо неравенство:

🟢10ᵈ⁻¹ ≤ n < 10ᵈ

Прологарифмировав все части неравенства по основанию 10, получим следующее:

🟢log₁₀10ᵈ⁻¹ ≤ log₁₀n < log₁₀10ᵈ
🟢d - 1 ≤ log₁₀n < d

Тогда если округлить десятичный логарифм произвольного числа n до ближайшего целого в меньшую сторону, левая часть неравенства обратится в равенство, из которого можно выразить переменную d, представляющую количество цифр в числе n:

🟢d - 1 = ⌊log₁₀n⌋
🟢d = ⌊log₁₀n⌋ + 1

Таким образом, в основе данного решения лежит следующее правило:

📌 Количество цифр в произвольном положительном целом числе равняется десятичному логарифму этого числа, округленному до целого в меньшую сторону и увеличенному на единицу

🔔🔔🔔🔔🔔🔔 Скоро выйдет наш новый курс по алгоритмам, в котором есть уроки по логарифмам. Если вам интересен этот курс, оставьте заявку по ссылке, и вы первыми узнаете о его выходе!

Ставьте реакцию:

❤️ — если знали о таком решении задачи
👀 — если узнали о нем впервые

#поколениеpython #логарифм #курспоалгоритмам

Поколение Python 🐍

15 Oct, 09:10


Брахма установил в храме города Ханоя бронзовую плиту с тремя алмазными стержнями и поместил на первый 64 золотых диска, от большего к меньшего снизу вверх. Когда монахи завершат переносить диски на третий стержень в том же порядке, храм рассыплется в прах и завершится жизнь Брахмы — то есть наступит конец света... 🧘

Эту красивую историю придумал французский математик Эрик Люка, чтобы прорекламировать свою игрушку под названием ханойские башни. 😉

Ханойские башни представляют собой три стержня и диски разного размера. Изначально все кольца расположены на левом стержне, сверху вниз в порядке увеличения. Задача игрока — переместить все диски на самый правый стержень.

У игрушки несколько простых правил:

1️⃣ за один раз переносим одно кольцо
2️⃣ нельзя класть большее кольцо на меньшее
3️⃣ задачу нужно решить за наименьшее возможное количество ходов

Вот уже более ста лет эта игра привлекает математиков и особенно программистов, потому что имеет рекурсивное решение.

‼️‼️‼️❗️ Минимальное число перекладываний, необходимое для решения головоломки, равно 2ⁿ − 1, где n — число дисков. Таким образом, для 5 дисков потребуется 31 перекладывание, а для 64 дисков потребуется 18446744073709551615 перекладываний. Если бы монахи, работая день и ночь, делали каждую секунду одно перемещение диска, их работа продолжалась бы почти 585 миллиардов лет. 😱

Поиграть в игру онлайн можно по ссылке.

Ставьте реакцию:

🔥 — если решали задачу о ханойских башнях
👀 — если слышите о них впервые

#япознаюмир #ханойскиебашни

Поколение Python 🐍

14 Oct, 12:56


Друзья, принесли вам новое слово недели! Сегодня поговорим о логировании.😎

⭐️ Логирование (ведение журнала) позволяет отслеживать, что, где, когда и при каких обстоятельствах происходило в программе, а также из-за чего возникла та или иная ошибка.

⭐️ Место, куда записывается информация, называется логом. Для записи обычно используют файлы с расширением .log, которые в дальнейшем можно использовать для анализа работы кода.

✔️ Логированию подлежит все, что может помочь при поиске и исправлении ошибок.

‼️‼️‼️❗️ Не стоит логировать конфиденциальные данные, например, логин и пароль пользователя.

⭐️ В Рython существует несколько инструментов для ведения логов. Наиболее популярным из них является встроенный пакет logging. Подробнее почитать о нем можно по ссылке.

Ставьте реакцию:

🔥 — если знали, что такое логирование
👀 — если слышите о нем впервые

🔝🔝🔝Сохраняйте пост в избранное, точно пригодится! ✍🏻

#словонедели #поколениеpython

Поколение Python 🐍

14 Oct, 06:24


Друзья, утро начинается не с кофе, а с задачи от "Поколения"! 😈

Однажды кот Тимура Кемаль решил провести собственный конкурс и пообещал разыграть 32 уникальных приза. 🎁

Каждый приз — это кубик с уникальной окраской. Каждую грань Кемаль раскрасил вручную в свой цвет. На палитре Кемаля всего 6 цветов, смешивать их он не любит (у него же лапки).

Сможет ли Кемаль соблюсти условия розыгрыша и сделать 32 уникальных раскрасок кубиков? 🤔

Пишите свои решения и ответы в комментариях, не забывая про скрытый текст.

‼️‼️‼️❗️ Если два кубика можно повернуть так, чтобы у них совпали по цветам все грани, это считается одинаковой раскраской!

Ставьте реакцию:

🔥 — если решили быстро
👀 — если пришлось поломать голову

#задача

Поколение Python 🐍

13 Oct, 10:56


Друзья, в 2020 году мы выпустили наш первый курс для тех, кто хочет научиться программировать — "Поколение Python": курс для начинающих! 🔥

Он стал одним из самых популярных курсов для изучающих основы программирования и победил в конкурсе Stepik Awards 2020 в номинации "Лучший бесплатный курс"! 🥳

Сегодня в линейку наших курсов также входят:

🟢"Поколение Python": курс для продвинутых
🟢"Поколение Python": курс для профессионалов
🟢"Поколение Python": ООП
🟢"Поколение Python": базы данных и SQL для начинающих

Делимся с вами отзывами студентов наших курсов! Мы растем благодаря вам! 😇

🔔🔔🔔🔔🔔🔔 Ближайший новый курс — это "Поколение Python: алгоритмы и структуры данных для начинающих". Если он вам интересен, оставьте заявку по ссылке, и вы первыми узнаете о его выходе!

❤️ Промокод HAPPYBD дает скидку 32% на покупку наших курсов через сайт pygen.ru.

Ставьте ❤️ к посту, если любите курсы "Поколение Python"!

#поколениеpython #отзывы