markup = types.InlineKeyboardMarkup(row_width=8)
sq_s_g3 = f"SELECT * FROM '{player1}-{player2}'"
cursor.execute(sq_s_g3)
records = cursor.fetchall()
for row in records:
markup.add(types.InlineKeyboardButton(text = row[1], callback_data = row[0]))
def start(message):
# тут то, что должно отрабатывать при start
@bot.message_handler(commands=['start'])
def start_command(message):
start(message)
@bot.message_handler(commands=['starts'])
def starts_command(message):
start(message)
# Далее то, что должно отрабатывать при starts
@bot.message_handler(commands=['start', 'starts'])
def start_command(message):
# то, что должно обрабатываться при этих командах
def get_value_from_dict(dct, path):
if not path:
return
key = path[0]
new_path = path[1:]
if curr_value := dct.get(key, None):
if new_path:
if type(curr_value) == dict:
if new_path:
return get_value_from_dict(curr_value, new_path)
else:
return
else:
return curr_value
d={
"lvl1_1": {
"lvl2_1": {
"lvl3_1": "value",
"lvl3_2": {
"lvl4_1": "value"
},
"lvl2_2": "value"
}
}
}
print(get_value_from_dict(d, ["lvl1_1", "lvl2_1", "lvl3_2", "lvl4_1"]))
def find_nb(m):
summ = 0
i=0
while summ != m:
i+=1
summ += i**3
if summ > m:
return -1
return i
@dp.callback_query_handler(lambda call: call.data.startswith("answer")
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:
# Выводим сообщение о том, то кнопку уже нажимали.