我最近就遇到了这个在Python 3.5:int()不适用于浮动?
>>> flt = '3.14'
>>> integer = '5'
>>> float(integer)
5.0
>>> float(flt)
3.14
>>> int(integer)
5
>>> int(flt)
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
int(flt)
ValueError: invalid literal for int() with base 10: '3.14'
这是为什么?它似乎应该返回3
。我做错了什么,或者这是否有很好的理由?
重要的一点:如果你不分配'float(flt)'的结果,例如'flt = float(flt)',那么转换后的值将被丢弃。它并没有在原地改变它的参数(Python没有相当于C++传递引用的概念,它允许这样做),所以'int(flt)'在原始的'str'上运行,而不是'float' 。基本上,'int()'用'float's可以很好地工作,但是你没有给它一个'float'。 – ShadowRanger