как остановить функцию в python (telebot)
мне нужно остановить функцию так как нужно перейти на следующую функцию под названием math
вот код:
@bot.message_handler(commands=['start'])
def welcome(message):
bot.send_message(message.chat.id,'Привет!как ты?')
@bot.message_handler(content_types=['text'])
def porduce(message):
if message.text=='плохо':
bot.send_message(message.chat.id,'не расстраивайся')
elif message.text=='хорошо':
bot.send_message(message.chat.id,'вот и отлично')
else:
bot.send_message(message.chat.id,'ну и такое бывает')
@bot.message_handler(commands=['math'])
def math():
x=int(input("Введите первое: "))
y=int(input("Введите второе: "))
operation=input(" ")
if operation=='+':
print (x + y)
elif operation=='-':
print (x - y)
elif operation=='*':
print (x * y)
elif operation=='/':
print (x / y)
else:
print("введите правильный символ")
Ответы (1 шт):
Автор решения: Violet
→ Ссылка
если я правильно понял Ваш вопрос:
@bot.message_handler(commands=['math'])
def math(message):
msg = bot.send_message(message.chat.id, 'Введите два числа\n_прим. 2 5_', parse_mode='Markdown')
bot.register_next_step_handler(msg, math_introductory)
def math_introductory(message):
try:
if len(message.text.split()) > 1:
introductory = message.text.split()
msg = bot.send_message(message.chat.id, 'Введите операнд\n_прим. +, -, /, *_', parse_mode='Markdown')
bot.register_next_step_handler(msg, math_operation, introductory)
else:
msg = bot.send_message(message.chat.id, 'Неверный ввод, повторите')
bot.register_next_step_handler(msg, math_introductory)
except Exception as error_input:
print(error_input)
def math_operation(message, introductory):
a = int(introductory[0])
b = int(introductory[1])
if message.text == '+':
bot.send_message(message.chat.id, '{}'.format(a + b))
elif message.text == '-':
bot.send_message(message.chat.id, '{}'.format(a - b))
elif message.text == '/':
bot.send_message(message.chat.id, '{}'.format(a / b))
elif message.text == '*':
bot.send_message(message.chat.id, '{}'.format(a * b))
else:
msg = bot.send_message(message.chat.id, 'Неверный ввод, повторите')
bot.register_next_step_handler(msg, math_operation, introductory)
Вы можете оптимизировать данный код, запрашивая операнд сразу с числами.
Так же не забудьте добавить проверку на isdigit().