Поколение Python 🐍
50.3K subscribers
2K photos
16 videos
6 files
866 links
Серия курсов по языку Python от BEEGEEK 🐝.

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

Перечень РКН: https://www.gosuslugi.ru/snet/673650d605391b3bfb5541c0
Download Telegram
Друзья, мы заметили, что пакеты курсов стали пользоваться популярностью среди наших студентов. 😍

🛍 Хотим сделать ваши покупки еще приятнее и выгоднее! Только сегодня повышаем скидки:

🟡 30% на пакет из 2 курсов
🟡 35% на пакет из 3 курсов
🟡 40% на пакет из 4 курсов

🔥 Вы сами выбираете, какие курсы войдут в пакет.

⚠️ Скидки действуют только 11 ноября при покупке пакетов курсов на нашем официальном сайте.

🎁 Всем, кто купит сегодня пакет курсов, мы отправим подарок — мерчбокс для программиста.

☝️☝️☝️☝️ Напоминаем, что все наши курсы доступны бессрочно: вы можете купить их сейчас по выгодной цене, а приступить к прохождению в любое удобное для вас время.

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

🔥 — если уже скупили все наши платные курсы и ждете новые
❤️ — если купили еще не все

#поколениеpython #курсы #скидки #акция
Please open Telegram to view this post
VIEW IN TELEGRAM
❤66🔥37💔1085🤩4❤‍🔥3😍3🌚11
Друзья, в прошлый раз мы рассматривали, как переводить числа из различных систем счисления в десятичную. Сегодня покажем, как осуществляется обратная операция — перевод чисел из десятичной системы в любую другую систему счисления. 🧮

👀 Например, мы хотим перевести некоторое число A из десятичной системы счисления в p-ичную.

1️⃣ Введем обозначения для записи числа A в p-ичной системе счисления:

A = (aₙ aₙ₋₁ aₙ₋₂ ... a₂ a₁ a₀)ₚ


где aₙ — это первая цифра числа A в p-ичной записи, aₙ₋₁ — вторая, aₙ₋₂ — третья и так далее.

2️⃣ Используя эти обозначения, представим записанное в p-ичной системе счисления число A в развернутой форме:

A = aₙ * pⁿ + aₙ₋₁ * pⁿ⁻¹ + aₙ₋₂ * pⁿ⁻² + ... + a₂ * p² + a₁ * p¹ + a₀ * p⁰

3️⃣ Если разделить число A на p, то результатом такого деления будет значение, равное числу A в p-ичной записи без последней цифры:

aₙ * pⁿ⁻¹ + aₙ₋₁ * pⁿ⁻² + aₙ₋₂ * pⁿ⁻³ + ... + a₃ * p² + a₂ * p¹ + a₁ * p⁰ = (aₙ aₙ₋₁ aₙ₋₂ ... a₂ a₁)ₚ

4️⃣ Остатком от деления при этом будет значение a₀, то есть последняя цифра числа A в p-ичной записи.

📕 Продолжая такой последовательный процесс деления числа A на p, на каждом шаге в качестве результата деления мы будем получать число A в p-ичной записи без очередной последней цифры, а в качестве остатка от деления — эту последнюю цифру. ​В определенный момент результатом деления обязательно окажется 0. В этот момент мы прекратим деление и выпишем все полученные остатки в обратном порядке. 🔙
​
📌 Алгоритм перевода целого число A из десятичной системы счисления в p-ичную:

1️⃣ разделить число A на основание системы счисления p
2️⃣ полученный результат деления снова разделить на основание системы счисления p
3️⃣ повторять второй шаг до тех пор, пока результатом деления не окажется число 0
4️⃣ полученные в процессе деления остатки — цифры числа A в p-ичной записи — выписать в обратном порядке

✏️ Попробуйте перевести число 65 в троичную систему счисления, используя данный алгоритм. Результат пишите в комментариях, не забывая про скрытый текст.

⏰⏰⏰⏰⏰⏰⏰ Подробнее о переводах между системами счисления вы можете узнать в нашем курсе "Алгоритмы и структуры данных для начинающих". Купить курс можно на нашем сайте по ссылке.

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

🔥 — если знали про алгоритм перевода из десятичной системы счисления
👀 — если узнали его впервые

#алгоритмы #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥61👀23❤1332🏆11
Друзья, а вы заметили, что в канале "Поколения" появились папки со сторис? 👀

Теперь можно посмотреть все, что когда-то пропустили:

📂 Цитаты
📂 Шутки
📂 А вы знали?

🧐 Какие еще форматы сторис вам было бы интересно видеть в канале "Поколения"? Пишите в комментариях!

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

🔥 — если всегда смотрите наши сторис
❤️ — если читаете только посты

#сторис #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥77❤31❤‍🔥1486🤩22⚡1😁1💋1👀1
Друзья, сегодня поговорим про изменяемые и неизменяемые объекты в Python. 😎

✏️ Изменяемые (mutable) объекты — это объекты, которые можно изменять после создания. К ним относятся:

🟣 списки
🟣 множества
🟣 словари

Например, можно дополнить список новыми элементами или изменить старые:

numbers = [1, 2, 3]

# добавляем число 4 в конец списка
numbers.append(4)

# изменяем первый элемент списка на число 5
numbers[0] = 5

print(numbers) # [5, 2, 3, 4]


💎 Неизменяемые объекты (immutable) — это объекты, которые нельзя изменить после создания. К ним относятся:

🔵 числа
🔵 строки
🔵 кортежи
🔵 замороженные множества

Например, строку изменить нельзя — можно только создать новый объект:

text = 'pygen is the best.'

# создается новая строка
new_text = text.upper()

print(text) # pygen is the best!
print(new_text) # PYGEN IS THE BEST!


☝️ Важно понимать разницу между изменяемыми и неизменяемыми объектами при работе с кодом:

🟡изменяемые объекты при передаче в функцию могут быть изменены внутри нее
🟡ключами словаря или элементами множества могут быть только неизменяемые объекты
🟡изменяемые значения в качестве параметров по умолчанию в функциях могут приводить к неожиданным эффектам
🟡Python кэширует некоторые неизменяемые объекты (малые числа, строки), что экономит память и ускоряет работу программы
🟡поведение программы непредсказуемо, когда несколько переменных ссылаются на один и тот же изменяемый объект

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

👍 — если умеете отличать изменяемые объекты от неизменяемых
🙉 — если до сих пор путаетесь

#python #полезныйматериал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍130🙉35❤1977😁22👨‍💻1
Друзья, хотим попросить у вас совета. 😍

📕 Несколько раз крупные издательства обращались к "Поколению" с предложением издать наши курсы в виде книги. Но мы считаем, что это не имеет смысла: одно из ключевых преимуществ "Поколения" — огромное количество интерактивных задач для отработки базовых навыков, а в виде книги это реализовать невозможно.

💡 Тогда у нас возникла другая идея: написать книгу "Рассказы о Python". Каждая глава будет посвящена особенностям языка, рассказывая о них в свободной, художественной форме и расширяя представления читателей о Python.

Ключевые свойства книги:

⚡️ подойдет и новичкам, и продвинутым программистам
⚡️ каждая глава независима от других — удобно читать урывками, например, по дороге на работу
⚡️ не учебник, а увлекательное и познавательное чтение

Интересен ли вам такой проект? Какую книгу от "Поколения" вы бы купили?

☝️☝️☝️☝️ Если вам интересна книга по Python, подпишитесь на рассылку новостей о проекте на сайте "Поколения". Ваши подписки помогают нам оценить популярность идеи и влияют на приоритеты в рабочих планах!

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

❤️ — если купили бы бумажную книгу от "Поколения"
👀 — если не любите бумажные книги

#поколениеpython #рассказыоpython #идеи #книгапоколения
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤336👀9313✍665👍3🤣1
Друзья, сегодня разбираем задачу на устный счет. 🧮

1️⃣ Из второго выражения находим, что 🖥 = 8 : 2 = 4

2️⃣ Подставляем в третье выражение и выясняем, что 🖥 = 4 : 2 = 2

3️⃣ Найденные значение подставляем в первое выражение и находим, что 🖥 = 4 + 2 = 6

4️⃣ Находим искомый результат: 🖥 + 🖥 = 6 + 2 = 8

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

🔥 — если легко справились с задачей в уме
👀 — если потянулись за листиком и ручкой

#разборзадачи #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥170👍11👏4👀33❤22😁11
Друзья, принесли вам новое слово недели! 😎

💻 Kubernetes (K8s) — это платформа с открытым исходным кодом, предназначенная для автоматизации развертывания, масштабирования и управления контейнеризированными приложениями в кластере серверов.

В отличие от Docker, который создает контейнеры, Kubernetes:

🟣 управляет работой контейнеров
🟣распределяет их между узлами
🟣обеспечивает доступность
🟣упрощает управление микросервисами

✏️ Kubernetes автоматизирует множество рутинных задач. Например, он может восстанавливать работу контейнеров при сбоях, автоматически распределять нагрузку между контейнерами и управлять ресурсами. Он координирует жизненный цикл контейнеров, собирая их в логические группы, которые называются "подами".

📌 Kubernetes был разработан компанией Google и спустя время открыт сообществу. Сейчас он развивается тысячами разработчиков по всему миру.

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

🔥 — если слышали раньше о Kubernetes
👀 — если узнали о нем впервые

#поколениеpython #Kubernetes #словонедели
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥134👀93❤1133😁11
Друзья, сегодня задача на скорость. Засекайте 30 секунд — и погнали! 🚲

🧠🧠🧠🧠

Во дворе Тимура катаются на велосипедах 16 детей. Каждый ездит или на двухколесном, или на трехколесном велосипеде. Всего на их велосипедах 38 колес.

🟢🟢🟢🟢🟢🟢

Сколько детей ездит на трехколесных велосипедах?

Ответы и ход мысли пишите в комментариях, не забывая прятать их под скрытым текстом! 😎

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

🔥 — если у вас был велосипед в детстве
👀 — если брали покататься

#задача #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥168👀188❤4🤔111
Друзья, а вы слышали про язык ассемблера? 🥸

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

⚙️ Язык ассемблера стал первым шагом к более понятному программированию: вместо чисел стали использовать короткие текстовые команды, которые напрямую соответствуют инструкциям процессора. Это низкоуровневый язык программирования, максимально близкий к компьютерному "железу".

⚠️ Программы, написанные на языке ассемблера, однозначно переводятся в инструкции конкретного процессора и чаще всего не могут быть перенесены для запуска на другой машине без значительных изменений.

✏️ В ассемблере программист указывает, какие именно операции должен выполнить процессор, какие ячейки памяти использовать и как работать с регистрами.

👍 Ассемблер незаменим:

🔸 в прошивках микроконтроллеров
🔸 в системном и встроенном программном обеспечении
🔸 в драйверах, BIOS и ядрах ОС
🔸 в высокопроизводительных и критически точных системах

🔔 Код на ассемблере очень быстрый, но писать его очень сложно. Поэтому сегодня ассемблер чаще используют точечно, для самых "узких" и ответственных мест программы.

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

🔥 — если знали о существовании ассемблера
💻 — если узнали о нем впервые

#япознаюмир #поколениеpython #ассемблер
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥329👨‍💻17👀178❤43👍22❤‍🔥1
Друзья, пришли озадачить вас очередным вопросом с собеседований. 😉

Чем фреймворк отличается от библиотеки?

🤍 Ответы на вопрос пишите в комментариях! 😍

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

❤️ — если уверены, что знаете разницу
👀 — если не уверены и будете ждать пост с ответом

#поколениеpython #собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👀210❤51👍94🔥222❤‍🔥1💯1
Друзья, ранее мы рассказывали про обобщенные табличные выражения (CTE). Сегодня расскажем про одну из их разновидностей. 🖥

📌 Рекурсивное CTE — это CTE, содержимое которого последовательно формируется на основе самого себя. Тело рекурсивного CTE, в отличие от обычного CTE, включает два извлекающих запроса:

🟣первый (нерекурсивный) — для однозначного определения содержимого первой записи CTE
🟣второй (рекурсивный) — для определения правила формирования всех остальных записей

📎 Содержимое каждой записи рекурсивного CTE, кроме первой, зависит только от содержимого предыдущей записи. Так, содержимое второй записи определяется на основе первой записи, содержимое третьей — на основе второй и так далее.

👀 Например, если первая запись CTE включает число 1, а правило, определяющее оставшиеся записи CTE, имеет вид <значение предыдущей записи> + 1, то вторая запись будет включать число 2, третья — 3 и так далее.

Синтаксис создания рекурсивного CTE практически повторяет синтаксис создания обычного CTE и имеет следующий вид:

WITH RECURSIVE <имя CTE> AS (
<извлекающий запрос, определяющий первую запись CTE>
<пара ключевых слов UNION ALL или UNION DISTINCT>
<извлекающий запрос, определяющий правило формирования очередной записи CTE (второй, третьей и так далее)>
)

<основной запрос, который может обращаться к рекурсивному CTE>


Как видно из шаблона, для создания рекурсивного CTE перед его именем необходимо указать ключевое слово RECURSIVE, а затем предоставить два извлекающих запроса, связав их парой ключевых слов:

🟣UNION ALL — при этом CTE будет включать повторяющиеся записи, если они возникнут при формировании
🟣UNION DISTINCT — при этом все повторяющиеся записи будут удалены

⏰⏰⏰⏰⏰⏰⏰ Подробнее рассказываем про обобщенные табличные выражения в нашем курсе "Базы данных и SQL". Его можно купить на нашем сайте pygen.ru.

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

🔥 — если знали о существовании рекурсивных СТЕ
👀 — если узнали о них впервые

#sql #СТЕ #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
👀69🔥32❤9211
Друзья, наш магазин мерча дарит подарки! 🔮

При покупке от 3000 рублей вы получаете скидку 10% и белый свитшот с дизайном на ваш выбор. 🔥

Правила акции:

🪄 сделайте заказ от 3000 рублей до 24 ноября
🪄 укажите промокод БЕЛАЯМАГИЯ
🪄 ждите сообщения от нашего менеджера, чтобы выбрать дизайн свитшота и обсудить детали заказа

Надеемся, наша акция поможет вам подобрать подарки к Новому году для вас и ваших друзей! 👩‍❤️‍👨

🛍 ЗА ПОКУПКАМИ 🛍

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

🎄— если уже чувствуете приближение Нового года
🔥 — если вам пока не до этого

#поколениеpython #мерч #акция
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34🎄236❤2🎅221
Друзья, разбираемся с ответом на вопрос с собеседования. 👩‍❤️‍👨

И фреймворки, и библиотеки используются для упрощения разработки программного обеспечения. Но в чем разница? 🧐

⭐️ Библиотека:

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

❤️ Фреймворк:

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

👀 В целом: библиотека — больше свободы в выборе логики, но больше написания кода; фреймворк — более унифицированный код, облегчение начала разработки, но больше ограничений по изменению поведения и структуры приложения.

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

🔥 — если уже пользовались и библиотеками, и фреймворками
👀 — если пока их не затрагивали

#собеседования #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
👀88🔥85❤‍🔥66❤33👍2🥰11
Друзья, сегодня поговорим о символах и байтах в Python. 😉

‼️ В Python 3 строки представляют собой последовательности символов. Каждый символ можно разделить на три составляющие:

🌱графическое представление
🌱идентификатор
🌱байтовое представление

➡️ Графическое представление символа — это его внешний вид, то есть то, что обычно видит пользователь, например: B, e, g, k, 🐝.

➡️ Идентификатор символа — это его кодовая позиция. Она представлена числом от 0 до 1114111, которое в стандарте Unicode записывается шестнадцатеричными цифрами в количестве от 4 до 6 с префиксом U+. Например, идентификатором английской буквы B является U+0042, а смайлика 🐝 — U+1F41D.

Чтобы увидеть, какой символ представляет идентификатор, можно воспользоваться функцией chr(). Для этого мы можем передать в эту функцию не только десятичное, но и шестнадцатеричное число, которое в Python записывается с префиксом 0x.

Приведенный ниже код:
print(chr(128029))
print(chr(66))

print(chr(0x1f41d))
print(chr(0x0042))


выводит:
🐝
B
🐝
B


➡️ Байтовое представление — это последовательность байтов, из которых состоит символ. Эта последовательность определяется кодировкой — алгоритмом преобразования идентификаторов в последовательности байтов и наоборот. Например, в кодировке UTF-8 символ 🐝 представлен 4 байтами, а в кодировке UTF-16 — 5 байтами.

Каждый байт последовательности представляет собой число от 0 до 255, которое записывается двумя шестнадцатеричными цифрами с префиксом \x. Например, строка Beegeek 🐝 в байтовом представлении имеет следующий вид:
b'\x42\x65\x65\x67\x65\x65\x6b\x20\xf0\x9f\x90\x9d'

💚 В Python для работы с последовательностями байтов используются типы bytes и bytearray.

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

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

#поколениеpython #python #полезныйматериал #символы
Please open Telegram to view this post
VIEW IN TELEGRAM
👀81🔥72❤115👍332👏1
Друзья, у всех нас очень разные представления об идеальном рабочем месте. 😁

Представили на картинке несколько разных сетапов: от стандартных до самых безумных. Какой из них у вас на столе? А как выглядит сетап вашей мечты? Расскажите в комментариях! 😍

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

🔥 — если у вас больше одного монитора (или вы хотите больше одного)
👀 — если и одного достаточно

#поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥303👀171👍875❤33❤‍🔥1🎄1👾1
Друзья, разбираем задачу про велосипеды! 🛞

🐌 Классическое решение

Обозначим количество трехколесных велосипедов за x. Тогда двухколесных велосипедов во дворе Тимура 16 − x.

Теперь займемся колесами. На трехколесных велосипедах будет 3x колес, а на двухколесных — (16 − x) × 2 колес. Всего колес 38, поэтому составим уравнение:

3x + (16 − x) × 2 = 38
3x + 32 − 2x = 38
x = 38 − 32
x = 6


Итак, во дворе Тимура 6 детей ездят на трехколесных велосипедах.

🐎 Быстрое решение

Представим, что все велосипеды во дворе Тимура двухколесные. Поскольку детей на велосипедах 16, то получим 16 × 2 = 32 колеса. Теперь заменим один велосипед на трехколесный и получим +1 колесо. Сколько всего велосипедов нужно заменить, чтобы получилось 38 колес? Правильно, у нас 6 трехколесных велосипедов.

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

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

#разборзадачи #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥69👀38❤94👌1🏆1🆒111
Друзья, сегодняшнее слово недели — кортеж (нет, не президентский). 😃

🔎Слово "tuple" происходит от английского суффикса, который встречается в словах типа double, triple, quadruple и указывает на кратность. В математике этот суффикс дал понятие n-tuple — упорядоченный набор из n элементов, после чего само "tuple" обособилось как имя для кортежа. Из математики термин перекочевал в информатику (включая Python) и означает фиксированный упорядоченный набор элементов.

✏️ Кортеж можно создать с помощью встроенной функции tuple() на основе другого итерируемого объекта или через явное указание элементов через запятую (обычно в круглых скобках):

cities = tuple({'Рим', 'Москва', 'Перт'})
date = 2012, 12, 12
point = (-4, 3)


Попытка изменить кортеж приводит к ошибке:

letters = ('a', 'b', 'c')
letters[0] = 'd' # TypeError: 'tuple' object does not support item assignment


Особенности кортежей:

✔️ элементы упорядочены
✔️ доступны операции индексации, срезов, перебора в цикле
✔️ можно хранить элементы разных типов данных (в том числе изменяемых)
✖️ изменить элементы после создания нельзя

Когда лучше использовать кортежи:

🔵 если данные фиксированы: создаются один раз и больше не изменяются (например, координаты точки, дата рождения или параметры телефона)
🔵 если нужно использовать какие-то данные в качестве ключа словаря или элемента множества

О преимуществах кортежей перед списками мы говорили в этом посте.

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

❤️ — если используете кортежи в своих программах
👀 — если не понимаете, зачем они вообще нужны в Python

#поколениеpython #словонедели #кортеж #tuple
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤105👀2215⚡7🔥53👍1🆒11
Друзья, сегодня предлагаем задачу про классическую головоломку "Ханойская башня". 🤦

✏️ Кот Кемаль пытается собрать Ханойскую башню. Условия: есть 3 стержня и 20 дисков разных размеров. Все диски находятся на левом стержне и расположены снизу вверх в порядке уменьшения.

Кемалю нужно перенести все диски на правый стержень, соблюдая три правила:

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

Цель Кемаля — решить задачу за минимальное количество ходов. Если один ход он выполняет ровно за одну секунду, сколько полных суток ему понадобится, чтобы полностью решить задачу для 20 дисков? 🐱

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

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

🔥 — если сталкивались раньше с Ханойской башней
👀 — если узнали об этой головоломке впервые

#задача #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥79👀54❤5👍53🆒2😎221
Друзья, а вы знаете, что в 1980-е годы программы хранили на аудиокассетах? 😵‍💫

🔈 Компьютер кодировал программу в набор высоких и низких тонов. Чтобы загрузить программу, нужно было вставить кассету в магнитофон и ждать, пока компьютер "слушает" запись и переводит ее обратно в байты.

⚙️ Дело в том, что домашние компьютеры уже были доступны, но дисководы оставались роскошью. Кассеты же стоили копейки и умели записывать сигнал достаточно надежно.

🖥 Популярные компьютеры того времени:

🔵 ZX Spectrum
🔵Commodore 64
🔵Amstrad CPC
🔵 отечественные БК-0010 и "Корвет"

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

🔥 — если застали эпоху аудиокассет
👀 — если не использовали кассеты

#япознаюмир #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥245👀9811🤯3💯2👾22⚡1😁1😎11