Как написать бота, который будет запрашивать у пользователя ввод чисел, но если пользователь вводит что-то, что не является числом, бот не должен идти дальше и должен повторно требовать ввод числа?

Улучшенная формулировка вопроса: "Сколько игр сыграла домашняя команда?"
  • 13 февраля 2024 г. 15:08
Ответы на вопрос 2
Для написания бота, который будет запрашивать у пользователя ввод чисел и повторно запрашивать ввод в случае некорректного ввода, можно использовать цикл while и проверку типа данных.

Вот пример кода на языке Python:

```python
while True:
    try:
        count = int(input("Сколько игр сыграла домашняя команда? "))
        break
    except ValueError:
        print("Пожалуйста, введите число.")

print("Количество игр:", count)
```

В данном примере используется цикл while с условием True, что означает, что он будет выполняться бесконечно, пока не будет выполнено условие для выхода из цикла.

В блоке try выполняется попытка преобразовать введенное значение в целое число с помощью функции int(). Если вводимое значение не является числом, возникает исключение ValueError.

В блоке except значение исключения проверяется и выводится сообщение о необходимости ввести число. После этого цикл повторяется и снова запрашивает ввод числа.

Когда корректное число введено, выполнение цикла прерывается при помощи оператора break, и программа выводит количество игр, введенных пользователем.
def process_num1_step(message):
global user_num1 ;
    while user_num1 == 0: 
        try:
             user_num1 = int(message.text) 
        except Exception:
             bot.send_message(message.from_user.id, 'Пожалуйста, введите число');
Похожие вопросы