Python 除了ValueError:quirk

Python 除了ValueError:quirk,python,try-except,Python,Try Except,运行代码时: integer = input("Enter an integer: ") try: int(integer) print("Good work!") except ValueError: print("Thats not an integer") 为什么输入一个像5.8这样的浮点数会进入except子句,而int(5.8)是5并且不会引起ValueError?如果输入的是一个整数,则浮点数将始终

运行代码时:

integer = input("Enter an integer: ")
try:
    int(integer)
    print("Good work!")
except ValueError:
    print("Thats not an integer")

为什么输入一个像5.8这样的浮点数会进入except子句,而int(5.8)是5并且不会引起ValueError?

如果输入的是一个整数,则浮点数将始终被视为ValueError。但是,输入int(5.8)不会导致错误,因为在代码测试之前,代码会将值从5.8更改为5,以查看它是否为有效输入。因此,5.8将导致错误,而int(5.8)不会。如果输入的是整数,则浮点将始终被视为ValueError。但是,输入int(5.8)不会导致错误,因为在代码测试之前,代码会将值从5.8更改为5,以查看它是否为有效输入。因此,5.8将导致错误,而int(5.8)将不会。

当您输入浮点时,您所做的是
int(“5.8”)
,这是无效的,因为它是一个字符串,您不能将字符串中的浮点转换为整数,所以首先将其转换为浮点,然后再转换为int
int(浮点(整数))
当您输入浮点时,您所做的是
int(“5.8”)
,这是无效的,因为它是一个字符串,您不能将字符串中的浮点值转换为整数,所以请先将其转换为浮点值,然后再转换为int
int(浮点(整数))

或?