⚡️ Паттерн команда
Это — паттерн, который позволяет оборачивать операции и запросы в отдельные объекты и передавать их как аргумент. Таким образом, запросы можно выстраивать в очереди, откладывать или отменять их выполнение.
Самый просто пример её использования — история действий (в IDE, Photoshop, etc).
Или кнопки, которые выглядят одинаково, но работают по разному.
Как вам темы, не связанные напрямую с Python? Стоит ли продолжать? Напишите в комментариях 👇
#паттерны #command
Это — паттерн, который позволяет оборачивать операции и запросы в отдельные объекты и передавать их как аргумент. Таким образом, запросы можно выстраивать в очереди, откладывать или отменять их выполнение.
Самый просто пример её использования — история действий (в IDE, Photoshop, etc).
Или кнопки, которые выглядят одинаково, но работают по разному.
Как вам темы, не связанные напрямую с Python? Стоит ли продолжать? Напишите в комментариях 👇
#паттерны #command
⚡️ Паттерн состояния (State)
Благодаря ему мы можем менять поведение объекта на основе его состояния. Вы могли слышать про него, изучая концепции машины состояний (конечный автомат).
Объект переходит между состояниями только при выполнении каких-либо условий. Например игрок пошёл, получил состояние ходьбы, остановился и вернулся к состоянию ожидания.
Состояний может быть много и из одного в другое можно будет перейти только при определённых условиях. Например пост, который находится на стадии редактирования, модерации и публикации. Без модерации, его вряд ли опубликуют.
#паттерны #state
Благодаря ему мы можем менять поведение объекта на основе его состояния. Вы могли слышать про него, изучая концепции машины состояний (конечный автомат).
Объект переходит между состояниями только при выполнении каких-либо условий. Например игрок пошёл, получил состояние ходьбы, остановился и вернулся к состоянию ожидания.
Состояний может быть много и из одного в другое можно будет перейти только при определённых условиях. Например пост, который находится на стадии редактирования, модерации и публикации. Без модерации, его вряд ли опубликуют.
#паттерны #state
⚡️ Задачка с собеседования | #Easy
Условие:
На вход идёт два значения — строка чисел string и число sz. Вам нужно разрезать строку на куски sz размером (если последний кусок меньше sz, его игнорировать). Если фрагмент это целое число, у которого сумма кубов цифр делится на 2, то переверните этот фрагмент, иначе переместите первую цифру влево.
Пример:
revrot('123456987653', 6) ➞ '234561356789'
revrot('66443875', 4) ➞ '44668753'
revrot('664438769', 8) ➞ '67834466'
revrot('123456779', 8) ➞ '23456771'
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
На вход идёт два значения — строка чисел string и число sz. Вам нужно разрезать строку на куски sz размером (если последний кусок меньше sz, его игнорировать). Если фрагмент это целое число, у которого сумма кубов цифр делится на 2, то переверните этот фрагмент, иначе переместите первую цифру влево.
Пример:
revrot('123456987653', 6) ➞ '234561356789'
revrot('66443875', 4) ➞ '44668753'
revrot('664438769', 8) ➞ '67834466'
revrot('123456779', 8) ➞ '23456771'
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Упрощаем работу с временем
На этот раз речь пойдёт о модуле Pendulum. С ним работать намного легче и интуитивно понятнее, чем с встроенным классом datetime.
Установка:
Также он упрощает изменение дат и перевода их в язык, понятный человеку. Но самое интересные фичи, это
#миниурок #pendulum
На этот раз речь пойдёт о модуле Pendulum. С ним работать намного легче и интуитивно понятнее, чем с встроенным классом datetime.
Установка:
pip install pendulum
Это модуль с отличной документацией, который значительно уменьшает количество кода при работе с временем. Также он упрощает изменение дат и перевода их в язык, понятный человеку. Но самое интересные фичи, это
period()
и duration()
.#миниурок #pendulum
⚡️ Паттерн наблюдатель (Observer)
Он позволяет создавать систему, в которой одни объекты следят и реагируют на события из других объектов.
Суть в том, что у нас есть объект, который может менять своё состояние. Например, какой-то товар на полке магазина.
Есть клиенты, которые хотят купить его. Они подписываются на событие (когда товар появится в наличие) и получают уведомление о том, что товар прибыл.
#паттерны #observer
Он позволяет создавать систему, в которой одни объекты следят и реагируют на события из других объектов.
Суть в том, что у нас есть объект, который может менять своё состояние. Например, какой-то товар на полке магазина.
Есть клиенты, которые хотят купить его. Они подписываются на событие (когда товар появится в наличие) и получают уведомление о том, что товар прибыл.
#паттерны #observer
⚡️ Задачка с собеседования | #Medium
Условие:
На вход идёт два целых числа, которые составляют промежуток [start, end]. В этом промежутке лет вам нужной найти и вернуть даты (в формате dd/mm/yyyy), когда будет пятница 13.
Если end не задан, то ищем только для года start.
Пример:
friday_the_13(2022) ➞ ['13/05/2022']
friday_the_13(1999, 2000) ➞ ['13/08/1999', '13/10/2000']
friday_the_13(2020, 2023) ➞ ['13/03/2020', '13/11/2020', '13/08/2021', '13/05/2022', '13/01/2023', '13/10/2023']
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
На вход идёт два целых числа, которые составляют промежуток [start, end]. В этом промежутке лет вам нужной найти и вернуть даты (в формате dd/mm/yyyy), когда будет пятница 13.
Если end не задан, то ищем только для года start.
Пример:
friday_the_13(2022) ➞ ['13/05/2022']
friday_the_13(1999, 2000) ➞ ['13/08/1999', '13/10/2000']
friday_the_13(2020, 2023) ➞ ['13/03/2020', '13/11/2020', '13/08/2021', '13/05/2022', '13/01/2023', '13/10/2023']
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ ASCII арт в Python
Если вы желаете, чтобы в вашей программе было всё красиво, даже командный интерфейс, то обязаны прочитать про art.
Установка:
Также у него есть разные стили вывода артов, о которых вы можете почитать в GitHub.
#миниурок #art
Если вы желаете, чтобы в вашей программе было всё красиво, даже командный интерфейс, то обязаны прочитать про art.
Установка:
pip install art
Этот модуль позволяет не только переводить текст в ASCII арт, а ещё и работать со смайликами, по типу таких: ۜ\(סּںסּَ` )/ۜ.Также у него есть разные стили вывода артов, о которых вы можете почитать в GitHub.
#миниурок #art
⚡️ Фабричный метод
Фабричный метод используется как средство предоставления фабричных интерфейсов для создания объектов.
Они позволяют ослабить связи в коде и упростить его: чаще всего он используется, если вам нужно создать объект по какому-то условию.
Таким образом, мы перемещаем большое количество if/elif/else-кода в отдельный метод.
#паттерны
Фабричный метод используется как средство предоставления фабричных интерфейсов для создания объектов.
Они позволяют ослабить связи в коде и упростить его: чаще всего он используется, если вам нужно создать объект по какому-то условию.
Таким образом, мы перемещаем большое количество if/elif/else-кода в отдельный метод.
#паттерны
⚡️ Что не так с float?
Многие слышали о том, что 0.1 + 0.2 ≠ 0.3. Но почему так происходит? Многие скажут, что это компьютер неправильно считает, но на самом деле проблема в математике.
Все значения в компьютере хранятся в двоичном в виде. И проблема происходит, именно когда мы переводим из десятичной в двоичную систему.
Возьмём 0.3. Мы спокойно можем представить её в десятичной системе, но в двоичной возникают проблемы. Это как 1/3. У нас это будет периодом, но в троичной системе счисления вычисление происходит без проблем.
Ошибки, к слову, есть и у нас в голове. Предлагаем в комментариях ответить на вопрос: «Можно ли разрезать торт весом 1 кг на 3 равные части с одинаковым весом»? 👇
#теория
Многие слышали о том, что 0.1 + 0.2 ≠ 0.3. Но почему так происходит? Многие скажут, что это компьютер неправильно считает, но на самом деле проблема в математике.
Все значения в компьютере хранятся в двоичном в виде. И проблема происходит, именно когда мы переводим из десятичной в двоичную систему.
Возьмём 0.3. Мы спокойно можем представить её в десятичной системе, но в двоичной возникают проблемы. Это как 1/3. У нас это будет периодом, но в троичной системе счисления вычисление происходит без проблем.
Ошибки, к слову, есть и у нас в голове. Предлагаем в комментариях ответить на вопрос: «Можно ли разрезать торт весом 1 кг на 3 равные части с одинаковым весом»? 👇
#теория
⚡️ Задачка с собеседования | #Medium
Условие:
Есть определённое количество кувшинок, расположенных в ряд, кузнечик стоит на первой из них. Он может прыгнуть на следующую кувшинку, либо перепрыгнуть через одну. Сколько существует разных способов (путей) добраться до последней кувшинки?
Пример:
get_way(1) ➞ 1
get_way(5) ➞ 8
get_way(16) ➞ 1597
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Есть определённое количество кувшинок, расположенных в ряд, кузнечик стоит на первой из них. Он может прыгнуть на следующую кувшинку, либо перепрыгнуть через одну. Сколько существует разных способов (путей) добраться до последней кувшинки?
Пример:
get_way(1) ➞ 1
get_way(5) ➞ 8
get_way(16) ➞ 1597
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования