Сделал телеграм бота для решения квадратных уравнений, но при вводе буквы или каких либо других символов, бот крашится. Помогите пожалуйста
import telebot
from telebot import types
import math
bot=telebot.TeleBot("токен")
@bot.message_handler(commands=["start"])
def start(message):
prikaz=f'👋Привет {message.from_user.first_name},Я бот для решений квадратных уравнений \nАктивируй команду /help,чтоб начать решать'
bot.send_message(message.chat.id,prikaz)
def is_number(_str):
try:
int(_str)
return True
except ValueError:
return False
@bot.message_handler(content_types=["text"])
def k (message):
if message.text=="/help":
bot.send_message(message.from_user.id,'Введи значение а')
bot.register_next_step_handler(message,a)
else:
bot.send_message(message.from_user.id,"Напиши /help")
def a(message):
global a
a = float(message.text)
if is_number(a):
bot.send_message(message.chat.id,'Введи значение b')
bot.register_next_step_handler(message,b)
else:
a = float(message.text,"Попробуй еще раз")
def b(message):
global b
b=float(message.text)
bot.send_message(message.chat.id,'Введи значение c')
bot.register_next_step_handler(message,c)
def c(message):
global c
c=float(message.text)
D = b * b - 4 * a * c
bot.send_message(message.from_user.id,"Дискриминант =%.2f"%D)
if D < 0:
bot.send_message(message.from_user.id, "Корней нет")
bot.send_message(message.from_user.id, "Напиши /help,чтобы начать сначала")
elif D == 0:
bot.send_message(message.from_user.id, "1 корень")
x1 = (-b + math.sqrt(D)) / 2 * a
bot.send_message(message.from_user.id,"Первый корень=%.2f"&x1)
bot.send_message(message.from_user.id, "Напиши /help,чтобы начать сначала")
elif D>0:
bot.send_message(message.from_user.id, "Будет 2 корня")
x1=(-b+math.sqrt(D))/2*a
x2=(-b-math.sqrt(D))/2*a
bot.send_message(message.from_user.id,"Первый корень=%.2f \nВторой корень=%.2f"%(x1,x2))
bot.send_message(message.from_user.id, "Напиши /help,чтобы начать сначала")
bot.polling(none_stop=True)