Поддельное исключение (ошибка значения)

#python #exception #try-catch

#python #исключение #попробуйте-поймайте

Вопрос:

Мой метод улавливает ValueEror, но это не должно происходить в этой ситуации. Пример ввода: 15, -7.

В чем может быть проблема и как ее исправить?

 def isdigit(number):
    try:
        int(number)
    except ValueError:
        return False
    else:
        return True
  

введите описание изображения здесь введите описание изображения здесь

Комментарии:

1. Я не могу воспроизвести ошибку. isdigit(' 15') # True

2. вы хотите вызвать поддельную ошибку?

3. Проверьте отступ, который я отредактировал в вашем вопросе.

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

Ответ №1:

Этот подход определенно то, что вы ищете

 def is_digit(num):
  while True:
    try:
      num = int(input("Enter an integer number: "))
      break
    except ValueError:
      print("Invalid input. Please input integer only")  
      continue

print(is_digit(" 9")
  

вывод

 Invalid input. Please input integer only
  

проголосуйте и проверьте 🙂