漂亮的复杂数字印刷

时间:2014-07-10 06:37:20

标签: python formatting complex-numbers

我有一个复数的列表,作为1d离散傅立叶变换的输出而创建。我希望能够在一个整齐的列中显示它们,实部和虚部四舍五入到每个4位小数;类似的东西:

21.0000 +  0.0000j
-3.0000 +  5.1962j
-3.0000 +  1.7321j
-3.0000 +  0.0000j
-3.0000 -  1.7321j
-3.0000 -  5.1962j

当然很好地排列在小数点上。有没有一种简单的方法可以做到这一点 - 某种格式化复数的方法?

3 个答案:

答案 0 :(得分:3)

使用新的format功能。

>>> a = -3 + 5.3j
>>> a
(-3+5.3j)
>>> "{num.real:+0.04f} {num.imag:+0.04f}j".format(num=a)
'-3.0000 +5.3000j'

答案 1 :(得分:0)

你可以这样做:

print '%0.4f + %0.4fi' % (a.real, a.imag)

答案 2 :(得分:0)

也许您正在寻找这样的东西:

>>> a = -3 - 5.3j
>>> "{num.real:+0.04f} {num.imag:=+8.04f}j".format(num=a)
'-3.0000 - 5.3000j'