@qw0cry

Как в моем случае правильно сделать проверку на ввод числа пользователем?

в общем,делаю код-игру,в которой пользователь должен угадать число.
после входа в меню от пользователя требуется ввести цифру с выбором сложности,после чего выдается характеристика данного уровня(их всего шесть + пункт выхода из игры.)
как сделать проверку того,что вводит пользователь? Если он вводит не то число,то проблем не возникает,потому что переменная для сравнения преобразуется в int,но как быть,если пользователь вводит любой другой символ?

ошибка:
if int(lvl) == 1:
^^^^^^^^
ValueError: invalid literal for int() with base 10: 'не число'
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Варианта 2:
1.Перед преобразованием проверять сообщение с помощью isdigit().
2.Ловить соответствующий Exeption и обрабатывать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@EugeneVKruglov
if type(lvl) is not int:
    print('Переменная не является целым числом')
Ответ написан
@Vaskey
Для проверки ввода пользователем числа в Python можно использовать функцию isdigit(). Она возвращает True, если строка состоит только из цифр, и False в противном случае.

Пример:

lvl = input("Введите уровень сложности: ")

if lvl.isdigit():
    lvl = int(lvl)
    if lvl == 1:
        # код для уровня 1
    elif lvl == 2:
        # код для уровня 2
    # ...
else:
    print("Вы ввели не число")

Здесь мы сначала проверяем, состоит ли строка lvl только из цифр, с помощью метода isdigit(). Если это так, то мы преобразуем ее в целое число lvl = int(lvl) и продолжаем сравнение с ожидаемыми значениями. Если же lvl содержит другие символы, выводим сообщение об ошибке.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы