⚡️ Паттерн наблюдатель (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
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Что выведет код выше?
Anonymous Quiz
27%
True True
32%
True False
14%
False True
13%
False False
13%
Узнать ответ
⚡️ Абстрактная фабрика
Это порождающий паттерн, который позволяет создавать семейство связанных объектов, не привязываясь к определённому классу.
Его преимущество в том, что мы можем спокойно добавлять семейства каких-то объектов, при этом не меняя старый код.
Например, вам нужно создать машины модели sedan и coupe. Этим занимаются две компании Toyota и Ford После может добавиться ещё компания, но для вас это не составит проблем.
#паттерны #fabric
Это порождающий паттерн, который позволяет создавать семейство связанных объектов, не привязываясь к определённому классу.
Его преимущество в том, что мы можем спокойно добавлять семейства каких-то объектов, при этом не меняя старый код.
Например, вам нужно создать машины модели sedan и coupe. Этим занимаются две компании Toyota и Ford После может добавиться ещё компания, но для вас это не составит проблем.
#паттерны #fabric
Что выведет код выше?
Anonymous Quiz
3%
1 4 8 0
41%
1 16 64 0
39%
SyntaxError
10%
TypeError
7%
Узнать ответ
687474703a2f2f692e696d6775722e636f6d2f6631504a7843512e676966
94.7 KB
⚡️ Сайт без сервера
Продукт от Amazon — Zappa, позволяет нам запускать сайт без сервера... Почти.
Установка:
С таким подходом система легко масштабируется. А значит с увеличением нагрузки сайт будет работать стабильно, а не отбрасывать чужие запросы.
Также услуги намного дешевле, ведь вы платите только за рабочие секунды.
#миниурок #zappa
Продукт от Amazon — Zappa, позволяет нам запускать сайт без сервера... Почти.
Установка:
pip install zappa
На самом деле сервер есть, но он живёт не более 40 миллисекунд. Под каждый ваш запрос выделяется в Amazon отдельный HTTP-сервер, который выполняет работу и умирает.С таким подходом система легко масштабируется. А значит с увеличением нагрузки сайт будет работать стабильно, а не отбрасывать чужие запросы.
Также услуги намного дешевле, ведь вы платите только за рабочие секунды.
#миниурок #zappa
⚡️ Задачка с собеседования | #Easy
Условие:
Вам нужно перевести секунды в формат часы:минуты:секунды. Если секунд меньше, чем 1 час, то стоит выводить в формате минуты:секунды. Не забывайте заполнять нулями значения, чтобы они выглядели так: 1:01:01, а не 1:1:1.
Пример:
convert_secs(65) ➞ '1:05'
convert_secs(12345) ➞ '3:25:45'
convert_secs(43200) ➞ '12:00:00'
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам нужно перевести секунды в формат часы:минуты:секунды. Если секунд меньше, чем 1 час, то стоит выводить в формате минуты:секунды. Не забывайте заполнять нулями значения, чтобы они выглядели так: 1:01:01, а не 1:1:1.
Пример:
convert_secs(65) ➞ '1:05'
convert_secs(12345) ➞ '3:25:45'
convert_secs(43200) ➞ '12:00:00'
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования