我正在使用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] 这是什么原因。我也是如何以正确的方式做同样的事情?
答案 0 :(得分: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