Друзья, отвечаем на вопрос с собеседований. 😎
⭐️ Синхронный код выполняется последовательно, один за другим, и блокирует выполнение других задач до его завершения. Это означает, что если у вас есть функция, которая занимает много времени на выполнение, и вы вызываете ее в основной программе, то выполнение программы заблокируется до завершения этой функции.
📌 Пример синхронного кода в Python — фрагмент с циклом
Цикл
➡️ Синхронный код может занять много времени и вызвать проблемы с производительностью, особенно когда код выполняет блокирующие операции, такие как чтение и запись файлов, обращение к сети или поиск значений в базе данных. Для решения этой проблемы в Python используют асинхронное программирование.
⭐️ Асинхронный код — подход к написанию кода, который позволяет выполнять несколько задач одновременно в рамках одного процесса за счет использования асинхронных функций и корутин. В отличие от синхронного кода, асинхронный код может запустить несколько задач параллельно и организовать их выполнение с помощью итераций и вызовов коллбеков.
📌 Пример асинхронного кода — использование библиотеки
➡️ Мы определяем 3 асинхронные функции:
Ставьте реакцию:
🔥 — если знали ответ на этот вопрос
👀 — если было полезно почитать ответ
#собеседование #python
for, обрабатывающим список элементов:items = [1, 2, 3, 4, 5]
for item in items:
print(item)
Цикл
for будет обрабатывать каждый элемент в списке items последовательно, один за другим, и не перейдет к следующему элементу, пока не завершится обработка текущего элемента.asyncio для запуска нескольких задач одновременно и ожидания их завершения:import asyncio
async def hello():
await asyncio.sleep(1)
print("Hello")
async def world():
await asyncio.sleep(2)
print("World")
async def main():
await asyncio.gather(hello(), world())
if __name__ == '__main__':
asyncio.run(main())
hello(), world() и main(). Функции hello() и world() печатают соответствующие сообщения и ждут 1 и 2 секунды соответственно. Функция main() запускает эти две функции одновременно с помощью asyncio.gather() и ждет, пока они завершат свою работу. Затем мы запускаем функцию main() с помощью asyncio.run(). В результате мы получим сообщения "Hello" и "World", каждое через 1 и 2 секунды соответственно, при этом результаты двух задач были получены почти одновременно.Ставьте реакцию:
🔥 — если знали ответ на этот вопрос
👀 — если было полезно почитать ответ
#собеседование #python
Please open Telegram to view this post
VIEW IN TELEGRAM
👀133🔥52❤14❤🔥11 6 2🤝1🙊1 1
Друзья, подводим итоги очень страшного конкурса! 👻
🥳 Поздравляем победителя @MSupernaturalS! Она получит набор тематических носочков из нашего магазина мерча и бесплатный доступ к любому курсу "Поколения".
📌 Свяжемся с победителем в ближайшее время, чтобы обсудить выбор курса и доставку приза.
Ставьте реакцию:
🔥 — если любите участвовать в конкурсах
👀 — если обычно этого не делаете
#конкурс #поколениеpython
Ставьте реакцию:
🔥 — если любите участвовать в конкурсах
👀 — если обычно этого не делаете
#конкурс #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
29🔥53👀40❤10👍3👻3 3 2 2
Друзья, детей часто пугают разными страшилками: бабайка, монстр под кроватью, призраки и вампиры... 😨
Становясь взрослыми, мы перестаем бояться этих баек. Но появляются новые страхи, которые детям неведомы:
😬 счета от стоматолога
😭 трое маленьких детей у соседей сверху
😳 внезапное осознание, что ближайшие сорок лет нужно ходить на работу
Какие еще страшилки для взрослых вы знаете? Пишите варианты в комментариях!
Ставьте реакцию:
🔥 — если любили рассказывать страшные истории в детстве
👀 — если таким не увлекались
#поколениеpython
Становясь взрослыми, мы перестаем бояться этих баек. Но появляются новые страхи, которые детям неведомы:
Какие еще страшилки для взрослых вы знаете? Пишите варианты в комментариях!
Ставьте реакцию:
🔥 — если любили рассказывать страшные истории в детстве
👀 — если таким не увлекались
#поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥81👀59😁6 6 3❤2😢2🫡2 2😈1👻1
Друзья, давайте разбираться с задачей про пятиугольник с числами. 😑
1️⃣ Заполним пустые ячейки на сторонах пятиугольника буквами от
2️⃣ Получаем следующие равенства:
3️⃣ Из первых двух сторон пятиугольника выразим
Ставьте реакцию:
🔥 — если легко справились с задачей
👀 — если успели запутаться
#разборзадачи #поколениеpython
a до e. Сумму трех чисел на каждой стороне пятиугольника обозначим за х.
7 + 3 + a = x
a + 1 + b = x
b + 6 + c = x
c + 2 + d = x
d + e + 7 = xa:
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❤10 5 4 2🤔1
Друзья, публикуем дайджест постов канала “Поколение Python” за октябрь! Наливаем горячий чаёк или кофе и читаем. ☕️
😵💫 ЗАДАЧИ
🔸 Задача про шалости кота Кемаля и ее разбор
🔸 Графическое уравнение и его разбор
🔸 Задача про часы со стрелками и ее разбор
🔸 Задача про пятиугольник с числами и ее разбор
🔸 Вопрос с собеседований про недостатки Python и ответ на него
🔸 Вопрос с собеседований про модули collections и itertools и ответ на него
🔸 Вопрос с собеседований про синхронный и асинхронный код и ответ на него
🔸 Тест №1
🔸 Тест №2
🔸 Тест №3
🔸 Тест №4
🧔♂️ ПОЛЕЗНЫЕ МАТЕРИАЛЫ
🔸 Слово недели. Протокол
🔸 Слово недели. Дескриптор
🔸 Слово недели. Контекстный менеджер
🔸 Python. Операторы global и nonlocal
🔸 Python. Иерархия числовых типов данных
🔸 Python. Оператор match-case
🔸 Алгоритмы и структуры данных. Битовые сдвиги
🔸 Алгоритмы и структуры данных. Ручной перевод в десятичную систему счисления
🔸 SQL. Числовые функции
🔸 SQL. Функции даты и времени
🔸 SQL. Триггеры
🦆 ПОЗНАВАТЕЛЬНЫЕ ПОСТЫ
🔸 Теория поколений: как отличить бумера от миллениала?
🔸 Что такое фишинг
🔸 Почему язык Fortran используется до сих пор
🔸 Первая компьютерная игра в истории
👩❤️👨 НОВОСТИ ПОКОЛЕНИЯ
🔸 Новая коллекция мерча в магазине “Поколения”
Все бесплатные уроки в нашем курсе по базам данных и SQL
🔸 Шпаргалки к нашим курсам от студентов “Поколения”
🔸 Опрос про планируемый курс “Английский для ИТ-специалистов”
🔸 Выросли скидки за отзывы на курсы “Поколения”
🔸 Павел Хошев запустил сервис аналитики курсов Stepik
Ставьте ❤️ и сохраняйте дайджест в избранное, чтобы почитать на выходных!
#октябрь2025 #дайджест #поколениеpython
Все бесплатные уроки в нашем курсе по базам данных и SQL
Ставьте ❤️ и сохраняйте дайджест в избранное, чтобы почитать на выходных!
#октябрь2025 #дайджест #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
58❤41❤🔥9 7🎄5👍4 2🔥1🤗1 1
Какой из этих языков программирования является низкоуровневым?
Anonymous Poll
11%
Python
10%
Fortran
69%
Assembler
10%
C++
1 38 27 20👍6🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍70 14 12🔥6❤5 4👨💻1
Выберите способ создания пустого множества
Anonymous Poll
69%
data = set()
20%
data = {}
4%
data = dict()
7%
data = ()
1👨💻34 20 5❤4🔥2 2
Please open Telegram to view this post
VIEW IN TELEGRAM
😎56 25 13 5👀4
Друзья, не так давно мы рассказывали про подзапросы в SQL. Сегодня поговорим об их разновидностях, а именно о коррелированных и некоррелированных подзапросах. 😎
🚨 Некоррелированные подзапросы могут выполняться автономно от основного запроса. Перед тем как их результат будет использоваться в основном запросе, можно посмотреть, что они возвращают.
👀 Предположим, что наша база данных содержит таблицу Books, включающую информацию о названиях книг, их авторах и оценках критиков. В качестве примера использования некоррелированного подзапроса напишем запрос, извлекающий данные о книгах с минимальной оценкой критиков:
Здесь подзапрос используется для вычисления наименьшего значения поля
Таким образом, обработка запроса, содержащего некоррелированный подзапрос, происходит в два этапа:
1️⃣ выполняется подзапрос, определяется его результат
2️⃣ полностью выполняется основной запрос с использованием результата подзапроса
🚨 Коррелированные подзапросы используются в том случае, когда для каждой записи таблицы, анализируемой основным запросом, подзапрос должен вернуть результат, зависящий от значений в этой записи.
👀 В качестве примера использования коррелированного подзапроса напишем запрос, извлекающий данные о книгах, оценка критиков которых больше, чем у предыдущей книги в таблице, то есть у книги с идентификатором на один меньше:
Здесь подзапрос используется для вычисления оценки критика, у которого идентификатор на единицу меньше, чем у критика в текущей записи таблицы. СУБД выполняет такой подзапрос для каждой записи таблицы отдельно и возвращает результат, полученный на основе ее значений.
⏰ ⏰ ⏰ ⏰ ⏰ ⏰ ⏰ Подробнее рассказываем о подзапросах в нашем курсе "Базы данных и SQL". Его можно купить на нашем сайте pygen.ru.
Ставьте реакцию:
🔥 — если знали о разновидностях подзапросов
👀 — если узнали о них впервые
#sql #подзапросы #поколениеpython
SELECT title, critic_score
FROM Books
WHERE critic_score = (SELECT MIN(critic_score)
FROM Books);
Здесь подзапрос используется для вычисления наименьшего значения поля
critic_score, то есть для определения минимальной оценки критиков. СУБД запоминает это значение и в дальнейшем просто использует его.Таким образом, обработка запроса, содержащего некоррелированный подзапрос, происходит в два этапа:
SELECT title, user_score
FROM Books
WHERE critic_score > (SELECT critic_score
FROM Books AS InnerBooks
WHERE id = Books.id - 1);
Здесь подзапрос используется для вычисления оценки критика, у которого идентификатор на единицу меньше, чем у критика в текущей записи таблицы. СУБД выполняет такой подзапрос для каждой записи таблицы отдельно и возвращает результат, полученный на основе ее значений.
Ставьте реакцию:
🔥 — если знали о разновидностях подзапросов
👀 — если узнали о них впервые
#sql #подзапросы #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
👀52🔥24❤7👍2🗿2 2 1 1
Друзья, рады сообщить, что в декабре мы традиционно запускаем адвент-челлендж для программистов от "Поколения Python"! 🗓
😮 Что такое адвент?
Существует европейская традиция: отсчитывать дни до прихода Рождества, открывая окошечки в специальных адвент-календарях, за которыми обычно скрываются сладости или небольшие игрушки.
😍 А мы запускаем адвент-челлендж для настоящих программистов! С 1 по 25 декабря ежедневно будет открываться одна новогодняя задача. Решайте их каждый день, чтобы прокачать 🧠 и поддержать праздничное настроение! 🎄
🚨 🚨 ⚠️ 🚨 ☝️ Адвент-челлендж будет проходить на Stepik в курсе с конкурсами и марафонами. Чтобы принять участие, необходимо зарегистрироваться на нашем сайте.
⭐️ Перед Новым годом мы подведем итоги челленджа. Подарки от "Поколения Python" получат самый быстрый решатель, самый точный решатель и 5 счастливчиков из числа тех, кто решит все задачи адвента. 😎
Ставьте ❤️, если будете участвовать в адвенте!
#поколениеpython #итадвент2025 #конкурс
Существует европейская традиция: отсчитывать дни до прихода Рождества, открывая окошечки в специальных адвент-календарях, за которыми обычно скрываются сладости или небольшие игрушки.
Ставьте ❤️, если будете участвовать в адвенте!
#поколениеpython #итадвент2025 #конкурс
Please open Telegram to view this post
VIEW IN TELEGRAM
22❤165🔥26 10 5 5❤🔥2👻2
Выберите вариант ответа
Anonymous Quiz
37%
True
13%
произойдет ошибка
38%
False
12%
не знаю, хочу посмотреть ответ
1👨💻35😱25 21👍9 6❤5 3🔥2
Друзья, сегодня знакомимся с группами исключений в Python. 🖥
💡 В Python 3.11 в стандартную библиотеку был добавлен класс ExceptionGroup для обработки групп исключений. Конструктор этого класса принимает в качестве аргумента:
🔸 строку с описанием группы
🔸 последовательность, которая содержит объекты исключений или объекты возбужденных исключений
В момент создания объекта исключения он не возбуждается автоматически — для этого необходимо использовать оператор
Приведенный ниже код:
приводит к возбуждению исключения:
Трассировка содержит информацию о том, что была возбуждена группа исключений, а также информацию о каждом из объектов исключений. Чтобы увидеть трассировку каждого исключения, их необходимо возбудить.
Приведенный ниже код:
приводит к возбуждению исключения:
🌟 Для обработки всей группы исключений также используется конструкция
☝️ ☝️ ☝️ ☝️ Группы исключений могут быть полезны в асинхронном программировании, когда несколько выполняемых задач завершились с ошибкой, но при этом есть другие варианты для продолжения их работы.
Ставьте реакцию:
🔥 — если знали о группах исключений в Python
👀 — если узнали о них впервые
#группыисключений #полезныйматериал #поколениеpython
В момент создания объекта исключения он не возбуждается автоматически — для этого необходимо использовать оператор
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❤7 7 3👍2 1
Друзья, возможно, вы заметили, что недавно наблюдались перебои в работе Telegram. 😔
😭 Мы задумались: если мессенджер будет заблокирован, что нам делать с нашим прекрасным сообществом? Как не потерять его — то есть всех вас?
⚠️ Хотим задать этот вопрос вам. Где вам будет удобнее оставаться на связи с нами в случае блокировки Telegram?
🔽 Голосуйте в опросе под постом и предлагайте свои варианты в комментариях.
Ставьте реакцию:
🗿 — если у вас были перебои в работе Telegram
👀 — если пока не сталкивались с такой проблемой
#поколениеpython
Ставьте реакцию:
🗿 — если у вас были перебои в работе Telegram
👀 — если пока не сталкивались с такой проблемой
#поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
👀330🗿55 5 2 2
Где вы точно останетесь на связи с Поколением?
Anonymous Poll
84%
в Telegram, несмотря ни на что 👩❤️👨
7%
в ВК 😎
8%
в Max 😆
1%
у меня есть другой вариант, напишу в комментарии
Выберите вариант ответа
Anonymous Quiz
10%
произойдет ошибка
2%
[1, 2, 3, 4, 5]
12%
[1, 4, 6, 8, 10]
52%
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
24%
[[1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]
Друзья, принесли вам новое слово недели. 😎
🖥 Docker (Докер) — это платформа с открытым исходным кодом для упаковки приложений в изолированные переносимые блоки, называемые контейнерами.
✅ Каждый контейнер содержит всё необходимое для работы приложения: код, модули и библиотеки, различные зависимости и даже операционные системы. Это позволяет быстро развертывать и масштабировать приложения в любой среде, гарантируя их работу. Docker упрощает разработку, тестирование и доставку приложений, отделяя их от инфраструктуры и обеспечивая единообразие окружения в различных системах.
📌 Ключевые компоненты Docker:
🟣 контейнер
🟣 образ (image)
🟣 Dockerfile
🟣 реестр
🟣 Docker Desktop
Преимущества Docker:
⭕️ обеспечивает переносимость: приложение, упакованное в контейнер, будет работать одинаково на любом компьютере с установленным Docker
⭕️ предотвращает конфликт зависимостей, поскольку каждый контейнер изолирован от других
⭕️ автоматизирует процесс сборки, доставки и развертывания приложений
⭕️ контейнеры занимают намного меньше места, чем виртуальные машины, и запускаются за считанные секунды
Ставьте реакцию:
🔥 — если вам уже приходилось работать с Docker
❤️ — если слышали о нем, но не пользовались
👀 — если впервые узнали о Docker
#поколениеpython #словонедели #docker
Преимущества Docker:
Ставьте реакцию:
🔥 — если вам уже приходилось работать с Docker
❤️ — если слышали о нем, но не пользовались
👀 — если впервые узнали о Docker
#поколениеpython #словонедели #docker
Please open Telegram to view this post
VIEW IN TELEGRAM
❤211🔥121👀79🫡3👍2 2👨💻1 1 1
Друзья, сегодня у нас задачка для решения в уме. 🧠
Каждый логотип языка программирования на картинке к посту обозначает некоторое целое число. Чему в таком случае равно выражение🖥 + 🖥 ?
Пишите ответы в комментариях, не забывая оскрытом тексте.
Ставьте реакцию:
🔥 — если знали все логотипы с картинки
👀 — если некоторые увидели впервые
#задача #поколениеpython
Каждый логотип языка программирования на картинке к посту обозначает некоторое целое число. Чему в таком случае равно выражение
Пишите ответы в комментариях, не забывая о
Ставьте реакцию:
🔥 — если знали все логотипы с картинки
👀 — если некоторые увидели впервые
#задача #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥173👀48👍10 8❤4 3❤🔥1 1