localtime >= open_time and localtime < close_time
SELECT *
FROM shop
WHERE
(open_time <= close_time) AND (localtime BETWEEN open_time AND close_time) OR
(open_time > close_time) AND NOT (localtime BETWEEN close_time AND open_time)
import datetime
import itertools
from typing import NamedTuple
class Card(NamedTuple):
name: str = None
phys_damage: int = 0
hp: int = 0
mage_damage: int = 0
armor: int = 0
add_hp: int = 0
def __repr__(self):
"""repr у нас будет показывать только аргументы, которые отличаются от умолчательных"""
defaults = type(self)._field_defaults
params = ', '.join(
f'{k}={v!r}'
for k, v in self._asdict().items()
if k in defaults and v != defaults[k]
)
return f'{type(self).__name__}({params})'
def __str__(self):
return f'<{self.name}#{id(self)}>'
@property
def total_hp(self):
return self.hp + self.add_hp
@property
def group(self):
return max(
(self.mage_damage, 'Intelegence'),
(self.add_hp, 'Strength'),
(self.armor, 'Agility'),
)[1]
class Deck():
def __init__(self, deck_name="Колода", date=None, cards=None):
self.deck_name = deck_name
self.date = date or datetime.now()
self.cards = cards or []
def __iter__(self):
return iter(self.cards)
def by_group(self):
return itertools.groupby(self, lambda card: card.group)
my_deck = Deck("Моя колода", "24.05.2022", [
Card("Течис", phys_damage=32, hp=600, mage_damage=100),
Card("Земеля", phys_damage=40, hp=600, mage_damage=60),
Card("Рудге", phys_damage=80, hp=600, add_hp=150),
Card("Крип", phys_damage=60, hp=600, armor=10),
])
for group, cards in my_deck.by_group():
print(f'# {group}:')
for card in cards:
print(f'\t{card!r}')
from math import e, pi
f=lambda c, r, n=3, fi0=0: [c+r*e**(1j*(2*pi/n*i+fi0)) for i in range(n)]
f
которая может рассчитать точки любого вписанного n-угольника:>>> f(c=250+250j, r=250)
[(500+250j),
(375+466.50635094610965j),
(125.00000000000006+466.5063509461097j),
250.00000000000003j,
(124.99999999999989+33.49364905389041j),
(374.99999999999983+33.49364905389024j)]
>>> [(round(p.real), round(p.imag)) for p in f(c=250+250j, r=250, n=5, fi0=pi/2)]
[(250, 500), (12, 327), (103, 48), (397, 48), (488, 327)]
itertools.product(*[words] * len(words))
def r(w=words, n=5):
if n > 1:
yield from ([i] + rr for i in w for rr in r(w=w, n=n-1))
else:
yield from ([i] for i in w)
set str="any_text/UC5qUbVE66mMu9kvsn_ki5yQ"
set str=%str:any_text=%
py -x "'channel/'+x.split('/')[5]" < t1.txt > t2.txt
SELECT
p.*,
(SELECT COUNT(op.count) FROM orders_products op WHERE op.product_id = p.id) AS countorders
FROM products p
ORDER BY p.id ASC
LIMIT 25
<description>![CDATA[Матрас VIRGINIA Black&White MultiPack, Средней/Мягкой жесткости, высота 230 мм
<strong>Состав:</strong>
<ul>
<li>Латекс перфорированный - 30 мм</li>
<li>Кокос латексированный - 10 мм</li>
<li>Термовойлок</li>
<li>Блок независимых пружин Multi Pocket - 512 пружин/м²</li>
<li>Термовойлок</li>
<li>Пена с эффектом памяти (мемориформ) - 40 мм</li>
<li>Короб из ППУ</li>
</ul>
<strong>Чехол:</strong> Трикотаж Black&White простеган на синтепоне.
<b>Особенности матраса:</b>
<ul>
<li><span style="text-decoration: underline;">Термовойлок</span>, плотный и упругий материал, отлично изолирует пружинный блок от верхних слоёв матраса. Использование термовойлока обеспечивает более равномерное распределение давления пружин на тело, увеличивает комфорт и продлевает срок эксплуатации матраса.</li>
<li><span style="text-decoration: underline;">Multi Pocket (мультипакет</span>) это блок с увеличенным (512 на 1 м²) ) числом независимых пружин. Они отличаются меньшим диаметром и, благодаря своей плотности, обеспечивают повышенную комфортность для спящего человека. Используется в матрасах, рекомендованных для людей с большим весом.</li>
<li><span style="text-decoration: underline;">Кокосовое волокно</span> один из самых натуральных, экологичных и долговечных материалов. Кокосовое волокно не подвержено гниению, не вызывает аллергии, отлично вентилируется и не впитывает запахи. Используется для жёсткости и равномерному распределению веса на пружинный блок.</li>
<li><span style="text-decoration: underline;">Перфорированный латекс</span> это замечательный материал, обладает гипоаллергенными свойствами и не допустит развития бактерий, которые смогут вызвать аллергию или нанести какой-то вред телу. Он не впитывает запахи и влагу. Пористая структура прекрасно «дышит» — влага, попавшая внутрь, тут же испаряется.</li>
<li><span style="text-decoration: underline;">«Memory Foam» (мемориформ</span>) или «пена с эффектом памяти» – новое поколение эластичных наполнителей для матрасов. Тонко реагируют на нагрузку и тепло, создают ощущение невесомости во время отдыха, отсутствие ответного давления на тело и деликатная поддержка физиологических изгибов позвоночника, не подвержены биопоражениям, гипоаллергенный, отличная вентиляция спального места, гарантирует спокойный сон, долговечность, не накапливает пыль.</li>
<li><span style="text-decoration: underline;">Чехол</span> собран из трикотажа, приятного на ощупь и имеющего дышащий эффект для проветривания и циркуляции воздуха внутри матраса. Чехол простеган на синтепоне, что делает его более мягким и долговечным.</li>
<li><span style="text-decoration: underline;">Короб ППУ(пенополиуретановый</span>). Для сохранения внешнего вида матраса правильной формы по периметру матраса используется короб из пенополиуретана.</li>
</ul>
<strong>Характеристики</strong>
<ul>
<li>Производитель: ООО ТПФ Текса</li>
<li>Страна производитель: Россия</li>
<li>Материал наполнения: ППУ, Кокос, Латекс, Мемориформ, Термовойлок</li>
<li>Пружинный блок: Независимый пружинный блок <span style="text-decoration: underline;">Multi Pocket</span></li>
<li>Высота: 23 см</li>
<li>Жесткость: Средняя/Мягкая</li>
<li>Вес на спальное место: до 140 кг</li>
<li>Сертификат: EAC</li>
<li>Гарантия: 18 мес.</li>
</ul>]]</description>