python复数打印结果与shell输出不同

时间:2013-06-03 02:53:00

标签: python math complex-numbers

>>> a=4.
>>> b=3.
r = sqrt(a ** 2 + b ** 2)
x = atan(b/a)
a = r * cos(x)
b = r * sin(x)
k = 0
y = (2 * pi * k + x) /3

root1 = r ** (1./3) * ( cos(y)+ 1j * sin(y) )
root11 = root1**4/root1
>>> root11
(3.999999999999999+2.999999999999999j)
>>> print root11
(4+3j)

如何在此'(3.999999999999999 + 2.999999999999999j)'表单中打印此复数?我试过了

>>> print '%15f %15fi' % (root11.real, root11.imag)
4.000000        3.000000i

请帮助

3 个答案:

答案 0 :(得分:2)

您也可以使用新的格式语法

print "{0:.15f}+{1:.15f}i".format(root11.real, root11.imag)

答案 1 :(得分:1)

你应该使用

print '%.15f %.15fi' % (root11.real, root11.imag)

请注意,.之前有一个15f来格式化小数点后的精度。如果您没有.,则指定字段宽度。

在我的机器(Python 2.7.3)中,结果是:

3.999999999999999 2.999999999999999i

答案 2 :(得分:1)

其中一条评论表明print root11.__repr__()完美无缺