私は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] が得られます。この理由は何ですか。また、正しい方法で同じことを行うにはどうすればよいですか?
私は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] が得られます。この理由は何ですか。また、正しい方法で同じことを行うにはどうすればよいですか?
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