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

Предлагайте свои идеи в комментариях!

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

❤️ — если пользовались хотя бы одной из этих отмазок
🔥 — если отмазываетесь более оригинально

#поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤152🔥32😁2114🤣8👏6👨‍💻21
Друзья, разбираем задачу про кубик. 🎲

Сумма всех чисел на кубике равна 1 + 2 + 3 + 4 + 5 + 6 = 21. Тогда сумма чисел на нижней и верхней грани равна:

🔵при первом броске — 21 - 12 = 9
🔵при втором броске — 21 - 15 = 6

Бросим кубик в третий раз так, чтобы посчитать сумму на оставшихся двух противоположных гранях: 21 - 9 - 6 = 6.

Теперь нам известны суммы всех трех пар граней: 9, 6, 6. Очевидно, грань с числом 3 не входит ни во вторую, ни в третью пару: это значило бы, что Тимуру достался кубик с двумя тройками, а это противоречит условию.

Значит, мы можем найти число напротив тройки из первой пары: 9 - 3 = 6.

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

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

#поколениеpython #разборзадачи
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥23👀17❤9🤯7👍44⚡2💯1🆒1
Друзья, разбираем задачу с собеседований! 😄

🤩Данную задачу можно решить несколькими способами. Приведем один из них:

def move_min_elements(nums):
min_el = min(nums)
n = len(nums)

i = n - 1
for j in range(n - 1, -1, - 1):
if nums[j] != min_el:
nums[i] = nums[j]
i -= 1

while i >= 0:
nums[i] = min_el
i -= 1


Здесь мы с помощью функции min() находим минимальный элемент списка. Заводим индекс i, который сначала будет указывать на конец списка. В цикле проходим по списку справа налево:

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

По завершении цикла остальные элементы списка от индекса 0 до индекса i необходимо заполнить минимальным элементом.

☝️☝️☝️☝️ Больше алгоритмических задач ищите в курсе "Алгоритмы и структуры данных для начинающих". Купить курс можно на нашем официальном сайте по ссылке.

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

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

#поколениеpython #собеседования #разборзадачи
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥19👨‍💻10❤6👏33⚡1😁1👀1
Друзья, подводим итоги розыгрыша среди бустеров нашего канала! 😍

Великий рандом выбрал победителем Алексея (@AlexSyn)
Он получит подарок от "Поколения":

🔘 суперполезную книжку книгу "Начинаем программировать на Python" Тони Гэддиса
🔘фирменный мерчбокс от "Поколения"

😉 Мы регулярно разыгрываем среди бустеров наш мерч и другие приятные штучки. Выиграть может абсолютно каждый, кто забустит наш канал.

Забустить канал "Поколения" можно по ссылке:

🔗 https://t.me/pygen_ru?boost

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

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

#поколениеpython #буст #розыгрыш
Please open Telegram to view this post
VIEW IN TELEGRAM
21🔥59😈55❤1143👻222👌1
Друзья, принесли вам новое слово недели! Сегодня поговорим про индексы баз данных. 😉

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

Существует два основных типа индексов.

✅ Кластеризованный индекс:

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

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

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

✅ Некластеризованный индекс:

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

🔵для дополнительной эффективности хранит значения индексированного поля в упорядоченном виде

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

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

🚨🚨⚠️🚨☝️ Подробно об индексах рассказываем в курсе "Базы данных и SQL". Купить курс можно на нашем официальном сайте по ссылке.

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

🔥 — если знали, про индексы
👀 — если слышите о них впервые

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

#словонедели #sql #индексы
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥57👀21❤7❤‍🔥7👨‍💻3✍222👻11
Друзья, сегодня решаем классическую задачу на логику. Похожие встречаются на собеседованиях в крупных ИТ-компаниях. 😎

🧠🧠🧠🧠

В засекреченном офисе есть три выключенные лампочки, а три выключателя от них находятся снаружи. Каждому выключателю соответствует своя лампочка, но никто не знает, какая именно.

Вам можно как угодно взаимодействовать с выключателями снаружи и с лампочками внутри. Есть только одно условие: внутрь засекреченного офиса можно зайти только один раз.

💡 Как определить, какой выключатель за какую лампочку отвечает?

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

🔥 — если любите задачи на логику
👀 — если предпочитаете задачи на код

#задача #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥128👀34❤75❤‍🔥3⚡222🆒111
Друзья, 20 июля отмечается День шахмат. Предлагаем к празднику тематический мерч для всех любителей и профессионалов-шахматистов, а также для пострадавших от шахматных задач! 😉

♟Что у нас есть:

🔷футболка "Think"
🔷кружка "Шахматы"
🔷шоперы "Шахматы"
🔷кружка "King and queen"
🔷футболка "Choose your weapon"
🔷и многое другое!

✨ В честь грядущего праздника при покупке любого мерча в нашем онлайн-магазине на сумму от 3000 рублей положим в подарок:

✅ лавандовую футболку с любым дизайном на ваш выбор
✅ 3 пары носочков

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

☝️☝️☝️☝️ Акция действует до 20 июля включительно.

⏰⏰⏰⏰⏰⏰⏰ В этом посте подробно рассказывали про историю появления шахмат. Почитайте, если пропустили!

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

🔥 — если любите играть в шахматы
👀 — если это не ваша игра

#мерч #акция #шахматы #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥51👀1914❤63👌1🏆111
Друзья, cегодня поговорим о связном списке. 😎

🔗 Связный список — это линейная динамическая структура данных, состоящая из узлов, каждый из которых содержит данные и ссылки на другие узлы.

Существует два основных типа связных списков:

➖ Односвязный список — каждый узел содержит ссылку только на следующий узел
➖ Двусвязный список — каждый узел содержит ссылки как на следующий, так и на предыдущий узел

Первый элемент связного списка называется головой (head), а последний — хвостом (tail).

Преимущества связного списка:

▶️ в отличие от массивов, элементы связного списка могут размещаться в памяти не последовательно, а вразброс — связь между ними обеспечивается с помощью ссылок

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

Недостатки связного списка:

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

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

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

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

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

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

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

#алгоритмы #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥65👀44👨‍💻10❤54❤‍🔥3🆒2😁111
Друзья, вы слышали теорему о четырех красках? 🧐

🎨 Представьте, что вы рисуете карту. Вам нужно раскрасить каждую страну так, чтобы две соседние не были одного цвета. Сколько цветов для этого потребуется?

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

💡 Впервые эту гипотезу высказал британский математик и ботаник Фрэнсис Гатри в 1852 году. Он раскрашивал карту графств Англии и заметил, что ему хватило четырех цветов. Тогда Гатри задался вопросом, всегда ли их будет достаточно.

📍 Теорему сумели доказать лишь в 1976 году, причем при помощи компьютера. Ученые Кен Аппел и Вольфганг Хакен сократили проблему до почти 2000 особых случаев, которые перебрали с помощью программы. Это был первый случай в истории, когда важную математическую теорему доказали с помощью ЭВМ.

✏️ К 2005 году доказательство перепроверили, устранили ошибки и свели количество видов карт до 633. Однако "ручного" доказательства теоремы все еще не существует.

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

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

#поколениеpython #теорема #математика
Please open Telegram to view this post
VIEW IN TELEGRAM
1👀216🔥45❤6544🤗1
Друзья, в одном из предыдущих постов мы выяснили, что функция type() на самом деле является метаклассом. Сегодня поговорим о классе object и его связи с метаклассом type.

📍Python — полностью объектно-ориентированный язык программирования. Это означает, что его реализация основана на концепции ООП, где все является объектом. При этом каждый объект относится к какому-либо классу.

📍Встроенный класс object является базовым классом для всех классов в Python. При создании экземпляра класс object не принимает никаких аргументов и возвращает "пустой" неизменяемый объект без атрибутов.

Приведенный ниже код:
obj = object()
print(obj)


выводит (адрес может отличаться):
<object object at 0x76ca7d9381b0>

😮 Между классами object и type существует необычная связь:

🔴класс object — это экземпляр класса type (как и любой другой класс)
🔴класс type — это подкласс класса object (как и любой другой класс)

Приведенный ниже код:
print(isinstance(object, type))
print(issubclass(type, object))


выводит:
True
True

😨 Эти отношения между классами object и type возможны из-за "магии" на уровне реализации Python. На чистом Python такую связь воспроизвести нельзя, потому что:

🔴чтобы создать object, нужен type (как метакласс)
🔴чтобы создать type, нужен object (как базовый класс)

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

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

#поколениеpython #полезныйматериал #метапрограммирование
Please open Telegram to view this post
VIEW IN TELEGRAM
1👀147🔥14127❤5🤯3👍21
Друзья, предлагаем поиграть в "Я никогда не...", но в версии для студентов "Поколения". 😁

Мы начнем!

Я никогда не подгонял решение задачи под тестовые данные. 👀


Пишите в комментариях, что вы никогда не делали во время изучения программирования. 😉

Ставьте ❤️ комментариям, если делали то, о чем в них говорится!

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

🔥 — если любите играть в "Я никогда не..."
👀 — если предпочитаете другие игры

#поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
1👀53🔥40❤16632👌11
Друзья, разбираем задачу про три лампочки и засекреченный офис! 😎

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

🤔 Но как быть с третьей лампой?

Нам нужно отличить друг от друга две работающие или неработающие лампы. И сделаем мы это с помощью тепла!

1️⃣Дадим всем лампам время остыть (вдруг какие-то из них были теплыми еще до нашего прихода)

2️⃣ Нажимаем любой выключатель и нагреваем одну из ламп. Затем выключаем ее

3️⃣ Включаем другую лампу и заходим внутрь

В офисе теперь есть включенная лампа, выключенная лампа и выключенная, но еще теплая лампа.

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

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

#поколениеpython #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
10👀65🔥53❤9322🤗1