Python 与int()和float()的行为不一致

Python 与int()和float()的行为不一致,python,floating-point,int,Python,Floating Point,Int,在python中,将字符串转换为浮点时,浮点将整数或小数表示形式转换为数字: 浮动'3.5'给出3.5 浮动'3'得到3 浮点还将整数转换为浮点: float3给出了3.0 如果int可以将浮点转换为整数,为什么不将字符串十进制转换为整数?例如: int3.5给出了3 但是,int'3.5'会引发ValueErrorexception 这使得人们在不知道数字是否为十进制的情况下,想要将字符串转换为整数时,可以使用类似intfloat'3.5'的代码 为什么float和int之间有这样的区别呢?我

在python中,将字符串转换为浮点时,浮点将整数或小数表示形式转换为数字:

浮动'3.5'给出3.5

浮动'3'得到3

浮点还将整数转换为浮点:

float3给出了3.0

如果int可以将浮点转换为整数,为什么不将字符串十进制转换为整数?例如:

int3.5给出了3

但是,int'3.5'会引发ValueErrorexception

这使得人们在不知道数字是否为十进制的情况下,想要将字符串转换为整数时,可以使用类似intfloat'3.5'的代码

为什么float和int之间有这样的区别呢?

我想说,为什么没有

这更像是一种转化的预防措施。它试图谨慎和保守,因为转换可能会以意外的方式丢失数据精度。通过说intfloat3.5,您的意图是明确的。但是int3.5—您是否希望这不是一个整数,并且准备放弃0.5的差异?浮动3.5中不存在此类问题

如果希望int3.5返回整数而不引起错误,那么要求intfour、int3.5忽略此注释、intXLII有效是很自然的吗?那就太多了。

为什么float3可以工作?它不是在把一个整数字符串转换成浮点数吗?它可以截断为整数,而不是抛出错误。我也不欣赏你对four和XLII的讽刺