我是Python的新手,我开始研究基础知识.我是一个C++人,所以//运算符是新的.根据我正在阅读的一本书:
>> 4/2
2.0
>> 2/4
0.5
>> 5//4
2
>> 2//4
0
Run Code Online (Sandbox Code Playgroud)
问题是,当我写入5//4结果为1时,当我写入4/2结果为2而不是2.0时,当我写入2/4结果为0时.我必须写'2.0/4.0'才能得到0.5.这些作者的错误还是我做错了什么?
我在linux2上使用Python 2.7.4,[GCC 4.7.3]
在Python 2.x中,默认的除法运算符是"Classic dvision".这意味着/,当与整数运算符一起使用时,将导致类似于C [ie 4/3 = 1]的整数除法.
在Python 3.x中,这是改变的.在那里,/指的是"真正的分裂"[ 4/3 = 1.3333..],而//用于请求"经典/地板分割".
如果要在Python 2.7中启用"True division",则可以from __future__ import division在代码中使用.
资料来源:PEP 238
例如:
>>> 4/3
1
>>> 4//3
1
>>> from __future__ import division
>>> 4/3
1.3333333333333333
>>> 4//3
1
Run Code Online (Sandbox Code Playgroud)