Python输出格式问题

时间:2018-03-19 20:04:15

标签: python numpy format output

不确定我正在接收的输出的语法。任何帮助,将不胜感激。 这是我的代码:

import numpy

def g(): #generate random complex values
    return numpy.random.random(1) + numpy.random.random(1) *1j

p = numpy.poly1d(numpy.squeeze([g(),g(),g()]))  # test function p
pprime = numpy.polyder(p) #derivative of p

print 'Our p(x) is {} '. format(p)
print('\n') # new line
print'Our pprime(x) is {} '. format(pprime)  #apply newtons method to p
print('\n') # new line

#apply newtons method to p
def root_newton ( f, df, tolerance = 1.0e-6):
    dx = 2 * tolerance
    x=0
    while dx > tolerance:
        x1 = x - f(x)/df(x)
        dx = abs (x - x1)
        x = x1
    return x
print('Our first root is at {}'.format(root_newton(p,pprime)))
print('\n') # new line

这是输出:

Our p(x) is                    2
(0.6957 + 0.683j) x + (0.3198 + 0.5655j) x + (0.9578 + 0.1899j) 


Our pprime(x) is  
(1.391 + 1.366j) x + (0.3198 + 0.5655j) 


Our first root is at (0.00925817978737+0.830966156841j)


The correct roots are [-0.64968928-1.01513333j  0.00925818+0.83096616j]

我输出的第一行中第二个组件上面的2是什么意思?我无法在网上找到与我的问题相似的内容。我猜它可能意味着x分量是平方但我不确定?顺便说一句,这是python 3。

1 个答案:

答案 0 :(得分:4)

2是第一个x上的指数,未对齐,因为您将文本放在同一行上。

如果我们采取你的输出:

Our p(x) is                    2
(0.6957 + 0.683j) x + (0.3198 + 0.5655j) x + (0.9578 + 0.1899j)

并删除您之前的文字:

                   2
(0.6957 + 0.683j) x + (0.3198 + 0.5655j) x + (0.9578 + 0.1899j)

2的预期含义变得更加清晰。