2x+3y>30
. У нас есть возможные комбинации x и y при которых это выражение будет ложным. Нам эти комбинации и нужны. Главная задача найти из этих двух комбинаций такие "граничные" комбинации, при которых любое увеличение x или y сделает выражение 2x+3y>30
истинным. Для этого пройдемся по x в диапазоне от 0 до 15 и по y в диапазоне от 0 до 10 и подставим в выражение 2x+3y<=30
И среди всех этих комбинаций нужно найти такую, которая даст максимальную сумму.a = 0
for x in range(16): # от 0 до 15
for y in range(11): # от 0 до 10
if 2*(x)+3*(y)<=30:
if a<x+y:
a = x+y
print(a)
@dp.callback_query_handler(text="<info>")
@dp.callback_query_handler(lambda call: сall.data.startswith("<info>"))
"<info>|1",
где <info>
- это то, что вы обычно закидываете в эту кнопку, 1 - это флаг того, что кнопка не была нажата.call.data == "<info>"
, то теперь это должно быть что-то типа call.data.startswith("<info>")
или call.data.split("|")[0] == "<info>"
if int(call.data.split("|")[1]):
# Тут уже просто редактируем клавиатуру, но в callback_data вставляем 0 вместо 1
else:
# Выводим сообщение о том, то кнопку уже нажимали.
def form_auth_name(message):
chek_login = message.text
if not str(chek_login) == db.auth_user_form(message.text):
mess = bot.send_message(message.chat.id, 'Неверный логин')
bot.register_next_step_handler(mess, form_auth_name)
else:
mess = bot.send_message(message.chat.id, 'Введите свой пароль.')
bot.register_next_step_handler(mess, form_auth_password)
def wrapper(method):
def comment(*args, **kwargs):
method(*args, **kwargs)
print('wrapper')
return comment
def wrap_all_methods(cls):
class NewCls:
def __init__(self, *args, **kwargs):
self._obj = cls(*args, **kwargs)
def __getattribute__(self, s):
try:
x = super().__getattribute__(s)
except AttributeError:
pass
else:
return x
attr = self._obj.__getattribute__(s)
if isinstance(attr, type(self.__init__)):
return wrapper(attr)
else:
return attr
return NewCls
@wrap_all_methods
class A:
def b(self):
print("bbb")
def c(self):
print("ccc")