Друзья, сегодня поговорим о паттернах проектирования.
В процессе создания программ большинство разработчиков сталкиваются с задачами, связанными с проектированием кода. Многие из таких архитектурных задач встречаются достаточно часто. Придумывать каждый раз новое решение неэффективно, поэтому были разработаны различные паттерны проектирования.
🟪 Паттерны проектирования — это шаблоны решений типовых задач проектирования программ.
Чаще всего паттерны проектирования используются для программ, написанных на объектно-ориентированных языках. Типовые задачи проектирования таких программ можно разделить на три основные категории:
▫ создание новых объектов
▫ структурирование системы на основе классов и объектов
▫ построение связей между объектами и распределение обязанностей между ними
Паттерны проектирования также подразделяются на категории в соответствии с задачами, которые они решают:
1⃣ Порождающие — предназначены для создания объектов, позволяют системе оставаться независимой как от самого процесса создания, так и от типов создаваемых объектов
2⃣ Структурные — рассматривают вопросы грамотной компоновки частей системы
3⃣ Поведенческие — решают проблемы взаимосвязи различных частей системы
✔ Паттерны помогают быстрее и эффективнее создавать код, не изобретая велосипед. Кроме того, использование паттернов улучшает читаемость кода. Другой программист, знакомый с нужным паттерном, сможет увидеть его в коде и понять, как все реализовано.
📎 Однако важно понимать, что паттерн — это лишь образец. Он дает не конкретное решение проблемы, а путь к решению. Причем выбор правильного паттерна является нетривиальной задачей, предполагающей у программиста наличие интуиции, опыта и творческого мышления.
Ставьте реакцию:
❤️ — если знали о паттернах проектирования
👀 — если слышите о них впервые
🔝 🔝 🔝 Сохраняйте пост в избранное, точно пригодится! ✍🏻
#python #полезныйматериал #паттерныпроектирования
В процессе создания программ большинство разработчиков сталкиваются с задачами, связанными с проектированием кода. Многие из таких архитектурных задач встречаются достаточно часто. Придумывать каждый раз новое решение неэффективно, поэтому были разработаны различные паттерны проектирования.
Чаще всего паттерны проектирования используются для программ, написанных на объектно-ориентированных языках. Типовые задачи проектирования таких программ можно разделить на три основные категории:
Паттерны проектирования также подразделяются на категории в соответствии с задачами, которые они решают:
Ставьте реакцию:
❤️ — если знали о паттернах проектирования
👀 — если слышите о них впервые
#python #полезныйматериал #паттерныпроектирования
Please open Telegram to view this post
VIEW IN TELEGRAM
👀82❤59🔥7 5👍1🥰1🤩1👨💻1🆒1😎1 1
Друзья, давайте выясним, какой редактор кода самый популярный среди студентов "Поколения"! 😁
Что вы чаще всего используете для написания кода? 🤔
Ставьте реакцию:
❤️ — PyCharm
🔥 — VS Code
😎 — Wing
👀 — другая версия, напишу в комментарии
Пишите в комментариях, почему вы выбрали тот или иной редактор, в чем его преимущества по сравнению с другими вариантами. 🤩
⏰ ⏰ ⏰ ⏰ ⏰ ⏰ ⏰ Кстати, вот в этом посте мы рассказывали о самых популярных инструментах для программистов, а также объясняли разницу между IDE и текстовым редактором.
#поколениеpython #опрос
Что вы чаще всего используете для написания кода? 🤔
Ставьте реакцию:
❤️ — PyCharm
🔥 — VS Code
😎 — Wing
👀 — другая версия, напишу в комментарии
Пишите в комментариях, почему вы выбрали тот или иной редактор, в чем его преимущества по сравнению с другими вариантами. 🤩
#поколениеpython #опрос
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥529❤496👀33😎20👍6⚡1👏1😈1 1 1
Друзья, разбираем задачу про последовательность чисел. 😉
Заметим, что каждое следующее число последовательности формируется из предыдущего путем конкатенации количества повторений цифр и самих цифр, начиная с единицы:
1➡️ одна единица ➡️ 11
11➡️ две единицы ➡️ 21
🔸 🔸 🔸
3112➡️ две единицы, одна двойка, одна тройка ➡️ 211213
Определим пропущенное число последовательности:
21➡️ одна единица, одна двойка ➡️ 1112
Определим следующее число последовательности:
212223➡️ одна единица, четыре двойки, одна тройка ➡️ 114213
Ставьте реакцию:
🔥 — если решили задачу быстро
👀 — если пришлось поломать голову
#разборзадачи
Заметим, что каждое следующее число последовательности формируется из предыдущего путем конкатенации количества повторений цифр и самих цифр, начиная с единицы:
1
11
3112
Определим пропущенное число последовательности:
21
Определим следующее число последовательности:
212223
Ставьте реакцию:
🔥 — если решили задачу быстро
👀 — если пришлось поломать голову
#разборзадачи
Please open Telegram to view this post
VIEW IN TELEGRAM
👀55🔥31✍8👍3🥰3❤2🏆1😇1🤝1 1 1
Друзья, собрали для вас дайджест публикаций “Поколения” за февраль. Вспоминаем зиму, ждем тепла. 🌱
😵💫 ЗАДАЧИ
🔵 Составьте простое число из цифр от 1 до 9
🔵 Задача с собеседований на анаграммы
🔵 Найдите три числа Фибоначчи
🔵 Задача про коллекцию уточек Тимура
🔵 Найдите пропущенное число и дополните последовательность
😎 ПОЛЕЗНЫЕ МАТЕРИАЛЫ
🔵 Слово недели. Интерполяция строк
🔵 Модели баз данных
🔵 Перечисления в Python
🔵 Слово недели. Профилирование кода
🔵 Вопрос с собеседования про множественное наследование и MRO и ответ на него
🔵 Линейный поиск
🔵 Коды состояния HTTP
🔵 Слово недели. Компилятор
🔵 Английский для программистов. Названия символов
🔵 Нормализация реляционных баз данных
🔵 Слово недели. Интерпретатор
🔵 Вопрос с собеседования про способы обращения к функции и ответ на него
🔵 Бинарный поиск
🔵 Паттерны проектирования
😍 ПОЗНАВАТЕЛЬНЫЕ ПОСТЫ
🔵 История шахматных программ
🔵 Принцип программирования YAGNI
🔵 Система планирования канбан
😃 НОВОСТИ “ПОКОЛЕНИЯ”
🔵 Анонс будущих курсов
🔵 10 000 городов на карте "Поколения"
Ставьте ❤️ и сохраняйте пост в избранное, чтобы почитать на досуге!
#поколениеpython #дайджест #февраль
Ставьте ❤️ и сохраняйте пост в избранное, чтобы почитать на досуге!
#поколениеpython #дайджест #февраль
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28❤20🔥9🥰2💘2❤🔥1🎄1🆒1 1 1
Друзья, на прошлой неделе мы щедро раздавали подарки ко дню рождения Python. А теперь решили, что время получать подарки самим! 😁
Как сделать подарок каналу "Поколения" в Telegram:
😁 Кликнуть на значок подарка справа внизу
😘 Выбрать что-нибудь симпатичное
😘 Отправить нам, не забыв написать пожелание 😘
Через неделю, 9 марта, мы подведем итоги и разыграем среди всех отправивших подарки бесплатный доступ к любому нашему курсу(включая новый курс по алгоритмам) .
😍 Ну и, конечно, просто с удовольствием почитаем ваши пожелания!
Ставьте реакцию:
🔥 — если уже знали про подарки в Telegram
👀 — если прочитали о них впервые
#поколениеpython #розыгрыш
Как сделать подарок каналу "Поколения" в Telegram:
Через неделю, 9 марта, мы подведем итоги и разыграем среди всех отправивших подарки бесплатный доступ к любому нашему курсу
Ставьте реакцию:
🔥 — если уже знали про подарки в Telegram
👀 — если прочитали о них впервые
#поколениеpython #розыгрыш
Please open Telegram to view this post
VIEW IN TELEGRAM
22👀77🔥39❤10👍2🥰2💘2👻1🤗1🙉1 1 1
Друзья, принесли вам новое слово недели! Сегодня поговорим о фреймворках. 😌
🧡 Фреймворк представляет собой каркас для разработки приложений, который состоит из готовых к использованию компонентов. Это могут быть различные функции, классы и даже целые библиотеки. Каждый компонент фреймворка решает ту или иную распространенную задачу. Разработчики на основе фреймворка дописывают необходимый функционал своих проектов.
😉 Таким образом, фреймворки облегчают и ускоряют разработку программных продуктов.
🧡 Существует множество фреймворков Python для создания самых разных приложений. Например, фреймворки Django, Flask и FastAPI широко используются для разработки веб-приложений.
Какой фреймворк для создания веб-приложений наиболее удобный по вашему мнению? 🤔
Ставьте реакцию:
🔥 — Django
❤️ — Flask
😎 — FastAPI
🔝 🔝 🔝 Сохраняйте пост в избранное, точно пригодится! ✍🏻
#словонедели #поколениеpython
Какой фреймворк для создания веб-приложений наиболее удобный по вашему мнению? 🤔
Ставьте реакцию:
🔥 — Django
❤️ — Flask
😎 — FastAPI
#словонедели #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥120😎80❤30 12 9🤷♀3👍3👏2🤩2🤔1🆒1
Друзья, принесли вам очередную задачку!
Кот Кемаль говорит Тимуру:
— Смотри, у меня есть три черных ящика: один большой и два маленьких. То, что в них находится, наглядно демонстрирует очень странное равенство:
Что в черных ящиках?
Тимур подумал-подумал, да и ответил. А вы справитесь?😎
Пишите ответы в комментариях, не забываяпро скрытый текст.
Ставьте реакцию:
🔥 — если решили задачу быстро
👀 — если пришлось поломать голову
#поколениеpython #задача
Кот Кемаль говорит Тимуру:
— Смотри, у меня есть три черных ящика: один большой и два маленьких. То, что в них находится, наглядно демонстрирует очень странное равенство:
5 + 5 = 4. То есть содержимое двух маленьких ящиков равно содержимому большого ящика.Что в черных ящиках?
Тимур подумал-подумал, да и ответил. А вы справитесь?
Пишите ответы в комментариях, не забывая
Ставьте реакцию:
🔥 — если решили задачу быстро
👀 — если пришлось поломать голову
#поколениеpython #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
👀44🔥11👏5👍3 2❤🔥1💯1🍾1😇1🤗1🆒1
Друзья, а вы знали, что за успехом первой высадки людей на Луну стоит программист? Вернее, программистка. 😉
Маргарет Гамильтон родилась в 1936 году в США. Получив степень бакалавра математики, она стала преподавать в средней школе. Но вскоре ей подвернулась вакансия в знаменитом MIT — Массачусетском технологическом институте.
Чем она занималась:
🟢 автоматизация метеорологических служб
🟢 программы для обнаружения самолетов противника
🟢 программы слежения за спутниками
В 30 лет Маргарет Гамильтон стала первой женщиной, принятой на работу в NASA. А два года спустя она возглавила отдел, который разрабатывал софт для командного и посадочного лунного модулей "Аполлона".😮
За несколько минут до посадки на Луну из-за ошибки астронавтов процессор перегрузился нерелевантными задачами. Но благодаря коду Гамильтон система смогла автоматически определить приоритетные процессы и продолжить посадку.😎
⚠️ Исходный код бортового компьютера Apollo 11 доступен на GitHub по ссылке.
Ставьте реакцию:
🔥 — если слышали про Маргарет Гамильтон
👀 — если узнали о ней впервые
#поколениеpython #япознаюмир
Маргарет Гамильтон родилась в 1936 году в США. Получив степень бакалавра математики, она стала преподавать в средней школе. Но вскоре ей подвернулась вакансия в знаменитом MIT — Массачусетском технологическом институте.
Чем она занималась:
В 30 лет Маргарет Гамильтон стала первой женщиной, принятой на работу в NASA. А два года спустя она возглавила отдел, который разрабатывал софт для командного и посадочного лунного модулей "Аполлона".
За несколько минут до посадки на Луну из-за ошибки астронавтов процессор перегрузился нерелевантными задачами. Но благодаря коду Гамильтон система смогла автоматически определить приоритетные процессы и продолжить посадку.
Ставьте реакцию:
🔥 — если слышали про Маргарет Гамильтон
👀 — если узнали о ней впервые
#поколениеpython #япознаюмир
Please open Telegram to view this post
VIEW IN TELEGRAM
👀184🔥95🥰7❤4👍4 4 4❤🔥2👏2🎉1🆒1
Друзья, продолжаем рубрику "Задачи с собеседований"! 😍
❤️ 🤍 ❤️ 🤍 ❤️ 🤍
❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️
Реализуйте функцию
⏺
Функция должна возвращать минимальное положительное целое число, которое пропущено в списке
❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️
❤️ Примеры тестовых данных: 😉
❤️ Пишите свой ход рассуждений и решения в комментариях, не забывая прятать их под скрытым текстом . 😄
Ставьте реакцию:
🔥 — если считаете, что ключ к успеху в практике
👀 — если уверены, что теория важнее
#поколениеpython #собеседования #задачанакод
Реализуйте функцию
smallest_missing_positive(), которая принимает один аргумент:nums — список целых чисел (0 ≤ len(nums) ≤ 10⁶)Функция должна возвращать минимальное положительное целое число, которое пропущено в списке
nums.print(smallest_missing_positive([2, 1, 5])) # 3
print(smallest_missing_positive([0, -2, 7])) # 1
print(smallest_missing_positive([5])) # 1
Ставьте реакцию:
🔥 — если считаете, что ключ к успеху в практике
👀 — если уверены, что теория важнее
#поколениеpython #собеседования #задачанакод
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥90👍6❤4 4👀2🥰1🤩1💯1👨💻1🆒1 1
Друзья, сегодня поговорим об алгоритме сортировки выбором.
📎 Сортировка выбором — это алгоритм сортировки набора данных по неубыванию или по невозрастанию.
✔️ Принцип работы алгоритма сортировки выбором состоит в пошаговом выборе элементов. Сначала из всех элементов выбирается тот, который должен встать на первое место. Затем среди оставшихся выбирается элемент, который должен занять второе место. Потом среди оставшихся выбирается элемент, который должен встать на третье место, и так далее.
📎 Правило выбора элемента на каждом шаге зависит от направления сортировки: при сортировке по неубыванию из неотсортированных элементов выбирается минимальный, а при сортировке по невозрастанию — максимальный.
Например, при сортировке набора данных по неубыванию алгоритм сортировки выбором выполняет следующие шаги:
🔠 среди всех элементов набора выбирает минимальный и ставит его на первое место
🔠 среди всех элементов набора, кроме первого, снова выбирает минимальный и ставит его на второе место
🔠 среди всех элементов набора, кроме первых двух, вновь выбирает минимальный и ставит его на третье место
🔠 аналогичным образом алгоритм ставит подходящие элементы на четвертое, пятое и остальные места
⬆️ Классическая реализация сортировки выбором — это алгоритм, который сортирует список по неубыванию путем его изменения. Данная реализация представлена на картинке.
При сортировке набора данных длины
Таким образом, на каждом шаге алгоритм сортировки выбором выполняет поиск минимума среди элементов, количество которых на единицу меньше, чем на предыдущем шаге. Поскольку всего алгоритм ищет минимальный элемент
📎 Следовательно, временнáя сложность алгоритма сортировки выбором равна
⏰ ⏰ ⏰ ⏰ ⏰ ⏰ ⏰ Выход курса по алгоритмам запланирован на 1 апреля. Вы можете купить его заранее со скидкой 20% и получить приятные бонусы. Подробности по ссылке!
Ставьте реакцию:
🔥 — если знали алгоритм сортировки выбором
👀 — если узнали о нем впервые
🔝 🔝 🔝 Сохраняйте пост в избранное, точно пригодится! ✍🏻
#поколениеpython #курспоалгоритмам
Например, при сортировке набора данных по неубыванию алгоритм сортировки выбором выполняет следующие шаги:
При сортировке набора данных длины
n алгоритм сначала ищет минимальный элемент среди всех n элементов, на что требуется n−1 сравнений. Затем алгоритм ищет минимальный элемент среди оставшихся n−1 элементов, на что необходимо n−2 сравнений. Таким образом, на каждом шаге алгоритм сортировки выбором выполняет поиск минимума среди элементов, количество которых на единицу меньше, чем на предыдущем шаге. Поскольку всего алгоритм ищет минимальный элемент
n−1 раз, общее число сравнений пропорционально квадрату количества элементов в наборе.O(n²), где n — длина набора данных.Ставьте реакцию:
🔥 — если знали алгоритм сортировки выбором
👀 — если узнали о нем впервые
#поколениеpython #курспоалгоритмам
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43👀20👍12❤4 3👏2✍1🤩1👌1🫡1 1
Друзья, на этой неделе снова дарим подарки при покупке мерча! Отличный способ и поздравить кого-то с праздником, и себя не обделить. 😉
При покупке мерча в онлайн-магазине "Поколения" на сумму от 3000 рублей положим в посылку бесплатно:
💜 эксклюзивную резиновую уточку
💜 три блокнота
💜 две пары носков
💜 суперполезную книгу для программиста
☝️ ☝️ ☝️ ☝️ Чтобы выбрать, какую именно книгу вы получите, активируйте при покупке в магазине "Поколения" соответствующий промокод!
ДОСТУПНЫЕ ПРОМОКОДЫ:
🟣 НАДЕЖНЫЙPYTHON
🟣 АЛГОРИТМЫ
🟣 ЧИСТЫЙPYTHON
🟣 PYTHONПРАКТИКА
🟣 КАРЬЕРАИТ
🟣 ТЕСТИРОВАНИЕ
🟣 СОФТСКИЛЛС
🟣 ТАЙНЫЙЯЗЫК
🟣 УМПРОГРАММИСТА
🚨 🚨 ⚠️ 🚨 ☝️ Если у вас не получается активировать один из промокодов, значит, он уже использован. Используйте промокод ТАЙНАЯКНИГА и мы положим вам дополнительную крутую книгу из нашей библиотеки. 😍
Ставьте реакцию:
🔥 — если читали одну из этих книг
👀 — если все книги видите впервые
#поколениеpython #акция #подарок #мерч
При покупке мерча в онлайн-магазине "Поколения" на сумму от 3000 рублей положим в посылку бесплатно:
ДОСТУПНЫЕ ПРОМОКОДЫ:
Ставьте реакцию:
🔥 — если читали одну из этих книг
👀 — если все книги видите впервые
#поколениеpython #акция #подарок #мерч
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👀52🔥19❤8✍5👻2⚡1👍1 1 1
Друзья, сегодня поговорим о том, почему в Python результат выражения 😨
📎 Дело в том, что большинство десятичных дробей невозможно представить в понятном компьютеру двоичном виде с необходимой точностью.
Например, десятичная дробь
📍 В результате при работе с числами с плавающей точкой в Python и других языках программирования возникают ошибки округления.
Приведенный ниже код:
выводит
📎 Сравнивать числа с плавающей точкой с помощью оператора
Распространенным способом проверить, почти ли равны два числа с плавающей точкой, является функция
Приведенный ниже код:
выводит
😉 Всегда будьте осторожны при работе с числами с плавающей точкой в любом языке программирования. Используйте инструменты, учитывающие ошибки округления.
Ставьте реакцию:
🔥 — если знали эту особенность чисел с плавающей точкой
👀 — если слышите о ней впервые
🔝 🔝 🔝 Сохраняйте пост в избранное, точно пригодится! ✍🏻
#python #полезныйматериал
0.1 + 0.1 + 0.1 не равен 0.3. Например, десятичная дробь
0.1 не имеет точного двоичного представления. При преобразовании числа 0.1 в двоичную систему счисления мы получаем бесконечную дробь: 0.00011001100110011...Приведенный ниже код:
print(0.1 + 0.1 + 0.1 == 0.3)
выводит
False.== не рекомендуется. Вместо этого лучше использовать приближение и проверять, являются ли числа с плавающей точкой "почти равными".Распространенным способом проверить, почти ли равны два числа с плавающей точкой, является функция
isclose() встроенного модуля math. Приведенный ниже код:
from math import isclose
print(isclose(0.1 + 0.1 + 0.1, 0.3))
выводит
True.Ставьте реакцию:
🔥 — если знали эту особенность чисел с плавающей точкой
👀 — если слышите о ней впервые
#python #полезныйматериал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥181👀130👍16✍4 4❤2❤🔥2🆒2 2😱1🏆1