中明确指出docs https://docs.python.org/3.5/library/functions.html#intint(number) 是一个地板类型转换:
int(1.23)
1
当且仅当字符串是整数文字时,int(string) 返回 int。
int('1.23')
ValueError
int('1')
1
这其中有什么特殊原因吗?我发现函数在一种情况下是楼层的,但在另一种情况下则不是,这是违反直觉的。
没有special原因。 Python 只是应用了不执行隐式转换的一般原则,这是众所周知的问题原因,特别是对于 Perl 和 Javascript 等语言的新手来说。
int(some_string)
是将字符串转换为整数格式的显式请求;此转换的规则指定字符串必须包含有效的整数文字表示形式。int(float)
是将浮点数转换为整数的显式请求;此转换的规则指定浮点数的小数部分将被截断。
为了int("3.1459")
回来3
解释器必须将字符串隐式转换为浮点数。由于 Python 不支持隐式转换,因此它选择引发异常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)