如何解决回调以及python电报bot中的条件
您好,我是python电报机器人开发的新手。面对这个问题: 我需要完成这些条件,以便我得到2,但实际上实际上总是显示1,所以我要进行某种询问。我想对正确答案进行计数,但是据我了解,当调用另一个回调时,第一个回调的结果消失了
@bot.message_handler(content_types = ['text'])
def get_text(message):
if message.text == 'Начать новый тест':
markup_inline = types.InlineKeyboardMarkup()
item_1 = types.InlineKeyboardButton(text='№ 1',callback_data='1')
item_2 = types.InlineKeyboardButton(text='№ 2',callback_data='2')
markup_inline.add(item_1,item_2)
bot.send_message(message.chat.id,'Выберите номер билета',reply_markup=markup_inline)
elif not message.text.isdigit():
bot.send_message(message.chat.id,'Неизвестная команда')
@bot.callback_query_handler(func = lambda call: True)
def bilet(call):
global p
p = 0
if call.data == '1':
bilet1vopros1 = types.InlineKeyboardMarkup()
item_111 = types.InlineKeyboardButton(text='1) Остановившись непосредственно перед пешеходным переходом,чтобы уступить дорогу пешеходу',callback_data= '111')
item_112 = types.InlineKeyboardButton(text='2) Остановившись на проезжей части из-за технической неисправности транспортного средства',callback_data='112')
item_113 = types.InlineKeyboardButton(text='3) В обоих перечисленных случаях',callback_data='113')
bilet1vopros1.add(item_111,item_112,item_113)
bot.send_message(call.message.chat.id,(emoji.emojize(':pencil2: Билет № 1,вопрос 1 из 20'+
'\n' +
'\n*В каком случае водитель совершит вынужденную остановку?*' +
'\n' +
'\n1. Остановившись непосредственно перед пешеходным переходом,чтобы уступить дорогу пешеходу' +
'\n2. Остановившись на проезжей части из-за технической неисправности транспортного средства' +
'\n3. В обоих перечисленных случаях',use_aliases=True)),parse_mode='Markdown',reply_markup=bilet1vopros1)
if call.data == '112':
bot.send_message(call.message.chat.id,(emoji.emojize(':white_check_mark: Верно :white_check_mark:',use_aliases=True)))
if call.data == '111' or call.data == '112' or call.data == '113':
markup_inline_bilet1vopros2 = types.InlineKeyboardMarkup()
item_121 = types.InlineKeyboardButton(text='Разрешён',callback_data='121')
item_122 = types.InlineKeyboardButton(text='Разрешен только при технической неисправности транспортного средства',callback_data='122')
item_123 = types.InlineKeyboardButton(text='Запрещён',callback_data='123')
markup_inline_bilet1vopros2.add(item_121,item_122,item_123)
img = 'https://imbt.ga/FXcByGXmGq'
bot.send_message(call.message.chat.id,(emoji.emojize(':pencil2: Билет №1,вопрос 2 из 20' +
'\n' +
f'\n{img}' +
'\n' +
'\n*Разрешён ли вам съезд на дорогу с грунтовым покрытием ?*' +
'\n' +
'\n1. Разрешён' +
'\n2. Разрешен только при технической неисправности транспортного средства' +
'\n3. Запрещён',reply_markup=markup_inline_bilet1vopros2)
if call.data == '121':
bot.send_message(call.message.chat.id,use_aliases=True)))
if call.data == '112':
p += 1
print(p)
if call.data == '121':
p += 1
print(p)
if __name__ == '__main__':
bot.polling(none_stop=True)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。