int () не изменяет число с плавающей точкой на целое число в выражении блока try - PullRequest
0 голосов
/ 18 марта 2019

Ниже приведен код, который я пытаюсь запустить. Но это дает мне исключение, даже когда я даю число с плавающей точкой?

Почему это так? int() может легко преобразовать число с плавающей точкой в ​​int.

while True:
    try:
        x=int(input("Enter the value: "))
        break
    except:
        print("Not a Valid Number")
    finally:
        print("Attemt Done")

1 Ответ

0 голосов
/ 18 марта 2019

Вы не конвертируете число с плавающей точкой в ​​int, вы конвертируете string в int (и, например, 3.2 не является допустимым целым числом). С другой стороны, это не повысит ValueError (так как 3.2 является действительным значением с плавающей точкой, и значение типа float может быть приведено к int):

x = int(float(input("Enter the value: ")))

Запись этого явно позволяет вам точно контролировать происходящее.

...