Написал тг бота, хотелось бы получить совет, да может не один

я новичок в программировании, ну или скорее только начал писать какие-то собственные проекты. Хотелось бы узнать, нормально ли написан ТГ Бот. Если есть какие то претензии или советы, напишите пожалуйста, буду рад любому комментарию, вот сам код:

import telebot
from telebot import types

bot = telebot.TeleBot('токен')
yan = 13.5      #Курс юаня
liberty = 7    #процент поизон

@bot.message_handler(commands = ['start', 'restart'])
def start(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard = True)
    itembtn1 = types.InlineKeyboardButton(text="?Ссылки для скачивания", callback_data="Download")
    itembtn2 = types.InlineKeyboardButton(text="?Отзывы", callback_data="Rewiews")
    itembtn3 = types.InlineKeyboardButton(text="❓Ответы на вопросы", callback_data="QИA")
    itembtn4 = types.InlineKeyboardButton(text="?Калькулятор стоимости", callback_data="Calc")
    itembtn5 = types.InlineKeyboardButton(text="?Инфо по доставке", callback_data="Delivery")
    itembtn6 = types.InlineKeyboardButton(text="?Как пользоваться приложениями", callback_data="How to")
    itembtn7 = types.InlineKeyboardButton(text="?Связаться с нами", callback_data="Conndect")

    markup.row(itembtn7)
    markup.row(itembtn2, itembtn4)
    markup.row(itembtn1, itembtn6)
    markup.row(itembtn3, itembtn5)

    mess = f"Привет, {message.from_user.first_name}, рад нашей встрече.
    Я официальный бот-помощник Liberty.
    Во мне собрана вся необходимая и полезная информация.
    Жду ваших указаний!"

    if (message.text != "Exit"):
        bot.send_message(message.chat.id, mess, reply_markup = markup)
    else:
        bot.send_message(message.chat.id, f"{message.from_user.first_name} снова в главном меню. Можно продолжать работу!", reply_markup = markup)

#Ссылка на группу с отзывами(Работает)
def review_link(message):
    markup = types.InlineKeyboardMarkup()
    markup.add(types.InlineKeyboardButton("Тыкай, не бойся", url = "https://t.me/China_Pkg_Reviews"))
    bot.send_message(message.chat.id, "Группа с отзывами", reply_markup = markup)
#Калькулятор суммы(Работает)
def calculator(message):
    bot.send_message(message.chat.id, "Введите стоимость товара в юанях: ")
    bot.register_next_step_handler(message, calculation)
def calculation(message):
    if (message.text.isdigit()):
        summ = message.text
        summ = int(summ)
        liberty_percent = summ * (liberty / 100)
        price = (summ + liberty_percent) * yan
        bot.send_message(message.chat.id, f"Итоговая примерная сумма: {round(price, 2)} + {500} рублей/кг за доставку")
    else:
        message.text = "?Калькулятор стоимости заказа"
        bot.send_message(message.chat.id, "Вы ввели некорректрную цену или допустили ошибку при вводе! Повторите сначала!")
        calculator(message)
#Ссылки на приложения и главное меню(Работает)
def download_links(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard = True)
    itembtn1 = types.InlineKeyboardButton("IOS")
    itembtn2 = types.InlineKeyboardButton("Android")
    itembtn3 = types.InlineKeyboardButton("Вернуться в главное меню")
    markup.row(itembtn1, itembtn2)
    markup.row(itembtn3)
    bot.send_message(message.chat.id, "Выберите свою систему или вернитесь в главное меню", reply_markup = markup)
    bot.register_next_step_handler(message, choice_platform)
def choice_platform(message):
    if (message.text == "IOS"):
        iphone(message)
    
    elif (message.text == "Android"):
        android(message)

    else:
        message.text = "Exit"
        start(message)
def iphone(message):
    markup = types.InlineKeyboardMarkup()
    link1 = types.InlineKeyboardButton("Ссылка на скачивание Poizon", url = 'https://apps.apple.com/ru/app/得物-得到运动x潮流x好物/id1012871328')
    link2 = types.InlineKeyboardButton("Ссылка на скачивание TaoBao", url = 'https://apps.apple.com/ru/app/淘宝-春节不打烊/id387682726')
    markup.row(link1)
    markup.row(link2)
    bot.send_message(message.chat.id, 'Ссылки на приложения для IOS', reply_markup = markup)
    message.text = "Exit"
    start(message)
def android(message):
    markup = types.InlineKeyboardMarkup()
    link1 = types.InlineKeyboardButton("Ссылка на скачивание Poizon", url = 'https://m.anxinapk.com/rj/12201303.html')
    link2 = types.InlineKeyboardButton("Ссылка на скачивание TaoBao", url = 'https://play.google.com/store/apps/details?id=com.taobao.taobao')
    markup.row(link1)
    markup.row(link2)
    bot.send_message(message.chat.id, 'Ссылки на приложения для Android', reply_markup = markup)
    message.text = "Exit"
    start(message)
#Видео по обучению использования и главное меню(Работает)
def video(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard = True)
    itembtn1 = types.InlineKeyboardButton("Poizon")
    itembtn2 = types.InlineKeyboardButton("TaoBao")
    itembtn3 = types.InlineKeyboardButton("Вернуться в главное меню")
    markup.add(itembtn1, itembtn2)
    markup.add(itembtn3)
    bot.send_message(message.chat.id, "Выберите нужное приложение или вернитесь в главное меню", reply_markup = markup)
    bot.register_next_step_handler(message, choice_app)
def choice_app(message):
    if(message.text == "Poizon"):
        poizon(message)

    elif(message.text == "TaoBao"):
        taobao(message)

    else:
        message.text = "Exit"
        start(message)
def poizon(message):
    bot.send_video(message.chat.id, open("Poizon.mp4", "rb"), supports_streaming = True)
    message.text = "Exit"
    start(message)
def taobao(message):
    bot.send_video(message.chat.id, open("TaoBao.mp4", "rb"), supports_streaming = True)
    message.text = "Exit"
    start(message)
#Инфо по доставке(Работает)
def delivery(message):
    info = "1️⃣ Мы не осуществляем возврат товара, обратите на это внимание. 
    \nСмотрите Пункт 1️⃣ \"❓Ответы на вопросы\"\n
    \n\2️⃣ Прием заказов осуществляется минимум от 1000 руб. Заказы, стоимость до данного минимума не будут рассматриваться.\n
    \n\3️⃣ Сумма за товар/предмет/вещь переводится сразу после оформления заявки. Это необходимо для выкупа заказа с площадки.\n
    \n\4️⃣ Сроки доставки могут исчисляться от 2 недель до 1 месяца при задержках поставок.\n
    \n\5️⃣ Если вы проживаете или временно находитесь в г. Хабаровск или г. Артем, вы можете осуществить самовывоз заказа.
    \В ином случае, доставка осуществляется через 100СП, СДЕК или иную курьерскую службу по согласованию сторон.\n
    \n\6️⃣ По уточняющим вопросам обращайтесь к администраторам: @hrbdbudnf , @I_TEMKA_I"
    bot.send_message(message.chat.id, info)
#Ответы на вопросы(Работает)
def questions(message):
    info = "1️⃣ Почему мы не можем осуществить возврат товара❓
    \n\Мы являемся посредниками и работаем через Китайский склад. Это означает, что мы не можем вернуть товар ввиду сложной логистики. 
    \Вы заказываете посылку \"на свой страх и риск\", но от себя мы можем сказать, что вещи приходят в целостности и сохранности.\n
    \n\2️⃣ Настоящие ли отзывы в группе❓
    \n\Ответ довольно прост - если вы сомневаетесь, просто напишите покупателям и спросите их лично. 
    Скорее всего, они будут не против поделиться опытом.\n
    \n\3️⃣ Если посчитать сумму заказа самостоятельно, выходит меньшая сумма. Как так❓
    \n\На этот вопрос можно ответить довольно просто: наша личная комиссия + процент склада из Китая за хранение товара. 
    Нам нужно что-то кушать, а складу платить аренду. \Не стоит забывать о конвертации валют, за которую банк взымает свой процент.\n
    \n\4️⃣ Приходит ли оригинал с торговых площадок❓
    \n\По поводу Poizon можно сказать точно - ДА. В данном маркетплейсе расположены только официальные представители компаний: 
    \Nike, Reebok, Adidas, TNF, Gucci, Louis Vuitton и многие другие. Вы сами можете скачать приложение и убедиться в этом. 
    \Так же к каждому заказу с Poizon прикладываются сертификаты, в которых расписана вся информация о том товаре, который вы приобрели. 
    \По поводу TaoBao можно сказать следующее: на площадке, в большей степени, преобладает китайская атрибутика. 
    \Это, буквально, Aliexpress, только изолированный от других стран. 
    Как если бы наш WildBerries решил выйти на мировой рынок под другим названием с теми же самыми товарами!\n
    \n\5️⃣По дополнительным вопросам, вы можете обратиться к администраторам канала и бота: @hrbdbudnf , @I_TEMKA_I"
bot.send_message(message.chat.id, info)
#Связь с нами(Работает)
def connection(message):
    mess = "Отлично, вы решили связаться с нами! 
    Если вы выбрали именно этот пункт, значит, по всей видимости, 
    \вы прочитали и изучили всю остальную информацию. 
    \Это замечательно! Для обратной связи обратитесь к одному из администраторов: 
    @hrbdbudnf , @I_TEMKA_I\n

    \n\Стоит учесть: если вы решите оформить заказ, 
    вам понадобится форма для заполнения. Ниже будет представлен файл, 
    который вам необходимо заполнить и отправить нам. 
    Так вы облегчите нашу работу!"
bot.send_message(message.chat.id, mess)
bot.send_document(message.chat.id, open("forma dlya zapolneniya.xlsx", "rb"))

@bot.message_handler(content_types = ['text'])
def com(message):
    if (message.text == "?Отзывы"):
        review_link(message)

    if (message.text == "?Калькулятор стоимости"):
        calculator(message)

    if (message.text == "?Ссылки для скачивания"):
        download_links(message)

    if (message.text == "?Как пользоваться приложениями"):
        video(message)

    if(message.text == "?Инфо по доставке"):
        delivery(message)

    if(message.text == "❓Ответы на вопросы"):
        questions(message)

    if(message.text == "?Связаться с нами"):
        connection(message)

bot.polling(none_stop = True)

Ответы (0 шт):