-1

当我尝试时,我正在使用 python 2.7.3

a = [1,2,3,4]
b = []
for i in a:
    b.append(1/i)

我得到了一个意外的输出,因为 b = [1,0,0,0]。但是如果我打印 i 循环的值就可以了。

for i in a:
    b.append(i)

会给出 b =[1, 2, 3, 4] 这是什么原因。另外我怎样才能以正确的方式做同样的事情?

4

1 回答 1

7

在 python 2 中,/当两个操作数都是整数时,表示整数除法。试试1.0 / i

 

In [2]: 1 / 2
Out[2]: 0

In [3]: 1.0 / 2
Out[3]: 0.5

In [4]: 1 / 2.0
Out[4]: 0.5

 

要使/操作符的行为像在 python 3 中一样,请使用from __future__ import division

In [11]: from __future__ import division

In [12]: 1 / 2
Out[12]: 0.5
于 2013-03-17T14:50:52.680 回答