Поколение 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
Друзья, давайте разбираться с задачей про пятиугольник с числами. 😑

1️⃣ Заполним пустые ячейки на сторонах пятиугольника буквами от a до e. Сумму трех чисел на каждой стороне пятиугольника обозначим за х.

2️⃣ Получаем следующие равенства:

7 + 3 + a = x
a + 1 + b = x
b + 6 + c = x
c + 2 + d = x
d + e + 7 = x


3️⃣ Из первых двух сторон пятиугольника выразим a:

a + 1 + b = b + 6 + c
a = b + 6 + c - 1 - b
a = 5 + c

4️⃣
Далее выразим d через третью и пятую стороны пятиугольника:

c + 2 + d = x
d = x - c - 2
d = (7 + 3 + a) - c - 2
d = 8 + a - c

5️⃣
Подставляем значение a и находим:

d = 8 + (5 + c) - c
d = 13


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

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

#разборзадачи #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
👀66🔥39❤10542🤔1
Друзья, публикуем дайджест постов канала “Поколение Python” за октябрь! Наливаем горячий чаёк или кофе и читаем. ☕️

😵‍💫 ЗАДАЧИ

🔸Задача про шалости кота Кемаля и ее разбор
🔸Графическое уравнение и его разбор
🔸Задача про часы со стрелками и ее разбор
🔸Задача про пятиугольник с числами и ее разбор
🔸Вопрос с собеседований про недостатки Python и ответ на него
🔸Вопрос с собеседований про модули collections и itertools и ответ на него
🔸Вопрос с собеседований про синхронный и асинхронный код и ответ на него
🔸Тест №1
🔸Тест №2
🔸Тест №3
🔸Тест №4

🧔‍♂️ ПОЛЕЗНЫЕ МАТЕРИАЛЫ

🔸Слово недели. Протокол
🔸Слово недели. Дескриптор
🔸Слово недели. Контекстный менеджер
🔸Python. Операторы global и nonlocal
🔸Python. Иерархия числовых типов данных
🔸Python. Оператор match-case
🔸Алгоритмы и структуры данных. Битовые сдвиги
🔸Алгоритмы и структуры данных. Ручной перевод в десятичную систему счисления
🔸SQL. Числовые функции
🔸SQL. Функции даты и времени
🔸SQL. Триггеры

🦆 ПОЗНАВАТЕЛЬНЫЕ ПОСТЫ

🔸Теория поколений: как отличить бумера от миллениала?
🔸Что такое фишинг
🔸Почему язык Fortran используется до сих пор
🔸Первая компьютерная игра в истории

👩‍❤️‍👨 НОВОСТИ ПОКОЛЕНИЯ

🔸Новая коллекция мерча в магазине “Поколения”
Все бесплатные уроки в нашем курсе по базам данных и SQL
🔸Шпаргалки к нашим курсам от студентов “Поколения”
🔸Опрос про планируемый курс “Английский для ИТ-специалистов”
🔸Выросли скидки за отзывы на курсы “Поколения”
🔸Павел Хошев запустил сервис аналитики курсов Stepik

Ставьте ❤️ и сохраняйте дайджест в избранное, чтобы почитать на выходных!

#октябрь2025 #дайджест #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
58❤41❤‍🔥97🎄5👍42🔥1🤗11
Какой из этих языков программирования является низкоуровневым?
Anonymous Poll
11%
Python
10%
Fortran
69%
Assembler
10%
C++
1382720👍6🔥1
Ответ к тесту 🔼
Please open Telegram to view this post
VIEW IN TELEGRAM
👍701412🔥6❤54👨‍💻1
Выберите способ создания пустого множества
Anonymous Poll
69%
data = set()
20%
data = {}
4%
data = dict()
7%
data = ()
1👨‍💻34205❤4🔥22
Ответ на тест 🔼
Please open Telegram to view this post
VIEW IN TELEGRAM
😎5625135👀4
Друзья, не так давно мы рассказывали про подзапросы в SQL. Сегодня поговорим об их разновидностях, а именно о коррелированных и некоррелированных подзапросах. 😎

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

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

SELECT title, critic_score 
FROM Books
WHERE critic_score = (SELECT MIN(critic_score)
FROM Books);


Здесь подзапрос используется для вычисления наименьшего значения поля critic_score, то есть для определения минимальной оценки критиков. СУБД запоминает это значение и в дальнейшем просто использует его.

Таким образом, обработка запроса, содержащего некоррелированный подзапрос, происходит в два этапа:

1️⃣ выполняется подзапрос, определяется его результат
2️⃣ полностью выполняется основной запрос с использованием результата подзапроса

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

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

SELECT title, user_score
FROM Books
WHERE critic_score > (SELECT critic_score
FROM Books AS InnerBooks
WHERE id = Books.id - 1);


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

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

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

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

#sql #подзапросы #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
👀52🔥24❤7👍2🗿2211
Друзья, рады сообщить, что в декабре мы традиционно запускаем адвент-челлендж для программистов от "Поколения Python"! 🗓

😮 Что такое адвент?

Существует европейская традиция: отсчитывать дни до прихода Рождества, открывая окошечки в специальных адвент-календарях, за которыми обычно скрываются сладости или небольшие игрушки.

😍 А мы запускаем адвент-челлендж для настоящих программистов! С 1 по 25 декабря ежедневно будет открываться одна новогодняя задача. Решайте их каждый день, чтобы прокачать 🧠 и поддержать праздничное настроение! 🎄

🚨🚨⚠️🚨☝️ Адвент-челлендж будет проходить на Stepik в курсе с конкурсами и марафонами. Чтобы принять участие, необходимо зарегистрироваться на нашем сайте.

⭐️ Перед Новым годом мы подведем итоги челленджа. Подарки от "Поколения Python" получат самый быстрый решатель, самый точный решатель и 5 счастливчиков из числа тех, кто решит все задачи адвента. 😎

Ставьте ❤️, если будете участвовать в адвенте!

#поколениеpython #итадвент2025 #конкурс
Please open Telegram to view this post
VIEW IN TELEGRAM
22❤165🔥261055❤‍🔥2👻2
1👨‍💻35😱2521👍96❤53🔥2
Друзья, сегодня знакомимся с группами исключений в Python. 🖥

💡 В Python 3.11 в стандартную библиотеку был добавлен класс ExceptionGroup для обработки групп исключений. Конструктор этого класса принимает в качестве аргумента:

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

В момент создания объекта исключения он не возбуждается автоматически — для этого необходимо использовать оператор raise. Мы можем создать список таких объектов и передать его в конструктор класса ExceptionGroup, создав тем самым группу исключений, которую можно возбудить также с помощью оператора raise.

Приведенный ниже код:
exc_list = [
ValueError('Ошибка 1'),
TypeError('Ошибка 2'),
RuntimeError('Ошибка 3'),
ValueError('Ошибка 4')
]

raise ExceptionGroup('Произошло несколько ошибок', exc_list)


приводит к возбуждению исключения:
 + Exception Group Traceback (most recent call last):
| File "main.py", line 8, in <module>
| raise ExceptionGroup('Произошло несколько ошибок', exc_list)
| ExceptionGroup: Произошло несколько ошибок (4 sub-exceptions)
+-+---------------- 1 ----------------
| ValueError: Ошибка 1
+---------------- 2 ----------------
| TypeError: Ошибка 2
+---------------- 3 ----------------
| RuntimeError: Ошибка 3
+---------------- 4 ----------------
| ValueError: Ошибка 4
+------------------------------------


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

Приведенный ниже код:
exc_list = [
ValueError('Ошибка 1'),
TypeError('Ошибка 2'),
RuntimeError('Ошибка 3'),
ValueError('Ошибка 4')
]

for exc in exc_list:
try:
raise exc
except Exception:
pass

raise ExceptionGroup('Произошло несколько ошибок', exc_list)


приводит к возбуждению исключения:
+ Exception Group Traceback (most recent call last):
| File "<frozen runpy>", line 198, in _run_module_as_main
| File "<frozen runpy>", line 88, in _run_code
| File "main.py", line 14, in <module>
| raise ExceptionGroup('Произошло несколько ошибок', exc_list)
| ExceptionGroup: Произошло несколько ошибок (4 sub-exceptions)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "main.py", line 10, in <module>
| raise exc
| ValueError: Ошибка 1
+---------------- 2 ----------------
| Traceback (most recent call last):
| File "main.py", line 10, in <module>
| raise exc
| TypeError: Ошибка 2
+---------------- 3 ----------------
| Traceback (most recent call last):
| File "main.py", line 10, in <module>
| raise exc
| RuntimeError: Ошибка 3
+---------------- 4 ----------------
| Traceback (most recent call last):
| File "mian.py", line 10, in <module>
| raise exc
| ValueError: Ошибка 4
+------------------------------------


🌟 Для обработки всей группы исключений также используется конструкция try-except, а для обработки отдельных типов исключений группы вместо оператора except необходимо использовать новый оператор except*. Он объединяет исключения одного типа в отдельную группу и обрабатывает все исключения этой группы в одном блоке кода.

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

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

🔥 — если знали о группах исключений в Python
👀 — если узнали о них впервые

#группыисключений #полезныйматериал #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
👀101🔥23❤773👍21
Друзья, возможно, вы заметили, что недавно наблюдались перебои в работе Telegram. 😔

😭 Мы задумались: если мессенджер будет заблокирован, что нам делать с нашим прекрасным сообществом? Как не потерять его — то есть всех вас?

⚠️ Хотим задать этот вопрос вам. Где вам будет удобнее оставаться на связи с нами в случае блокировки Telegram?

🔽 Голосуйте в опросе под постом и предлагайте свои варианты в комментариях.

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

🗿 — если у вас были перебои в работе Telegram
👀 — если пока не сталкивались с такой проблемой

#поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
👀330🗿55522
Друзья, принесли вам новое слово недели. 😎

🖥 Docker (Докер) — это платформа с открытым исходным кодом для упаковки приложений в изолированные переносимые блоки, называемые контейнерами.

✅ Каждый контейнер содержит всё необходимое для работы приложения: код, модули и библиотеки, различные зависимости и даже операционные системы. Это позволяет быстро развертывать и масштабировать приложения в любой среде, гарантируя их работу. Docker упрощает разработку, тестирование и доставку приложений, отделяя их от инфраструктуры и обеспечивая единообразие окружения в различных системах.

📌 Ключевые компоненты Docker:

🟣контейнер
🟣образ (image)
🟣Dockerfile
🟣реестр
🟣Docker Desktop

Преимущества Docker:

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

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

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

#поколениеpython #словонедели #docker
Please open Telegram to view this post
VIEW IN TELEGRAM
❤211🔥121👀79🫡3👍22👨‍💻111
Друзья, сегодня у нас задачка для решения в уме. 🧠

Каждый логотип языка программирования на картинке к посту обозначает некоторое целое число. Чему в таком случае равно выражение 🖥 + 🖥?

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

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

🔥 — если знали все логотипы с картинки
👀 — если некоторые увидели впервые

#задача #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥173👀48👍108❤43❤‍🔥11
Друзья, мы заметили, что пакеты курсов стали пользоваться популярностью среди наших студентов. 😍

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

🟡 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