Пишу бота, бот запрашивает цифры, но если пользователь вводит не число бот идёт дальше а потом выдает ошибку, а бот должен требовать ввода числа?

Проблема, с которой вы столкнулись, в том, что ваш бот не проверяет, является ли введенное пользователем значение числом или нет. Если пользователь случайно вводит нечисловое значение, ваш бот продолжает свою работу, и только после этого выдает ошибку.

Для решения этой проблемы можно использовать конструкцию try-except, которая позволяет обрабатывать исключения. Вы можете попросить пользователя ввести значение и затем попытаться преобразовать его в число. Если преобразование не удалось, то будет сгенерировано исключение, которое можно перехватить и сообщить пользователю, что он должен ввести число.

Вот пример кода на языке Python, который позволяет реализовать такое поведение бота:

while True:
    try:
        num = int(input("Введите число: "))
        break
    except ValueError:
        print("Ошибка! Введите число.")

# Теперь вы можете использовать введенное число num в своем коде

В этом примере мы используем цикл while True для того, чтобы бот запрашивал число до тех пор, пока пользователь не введет корректное число. С помощью конструкции try-except мы преобразуем введенное значение в число с помощью функции int(). Если это возможно, то значение присваивается переменной num, и цикл while прерывается с помощью оператора break. Если же преобразование в число вызывает исключение ValueError, мы перехватываем его и выводим сообщение об ошибке, после чего цикл продолжается снова.

Теперь бот будет просто продолжать запрашивать ввод числа до тех пор, пока пользователь не введет корректное значение. Это поможет предотвратить возникновение ошибок в вашем коде и поведение бота станет более понятным для пользователя.