1

使用,我们可以print在同一行上写多个语句。

print 'hello',
print 'world'

问题:打印函数返回的值时,如何将多个函数调用返回的值打印在同一行?

以下代码在单独的行上打印每个函数返回的值:

import math


def square_root(a):

    x = a
    e = 0.0000001

    while True:

        print x
        y = (x + a/x)/2

        if( abs(x - y) < e ):
            return x

        x = y


def test_square_root():

    for i in range(1,10):

        print float(i),
        print square_root(float(i)),
        print math.sqrt(float(i)),
        print abs( square_root(float(i)) - math.sqrt(float((i))) )

test_square_root()
4

2 回答 2

3

去除

print x

在你的函数里面。这就是导致线路“过早”结束的原因。

于 2013-10-02T00:33:31.653 回答
1

test_square_root()函数的最后一个打印语句上添加逗号:

print abs( square_root(float(i)) - math.sqrt(float((i))) ),

或者,您可以从函数中生成每个项目而不是打印它:

def test_square_root():
    for i in range(1,10):
        yield float(i)
        yield square_root(float(i))
        yield math.sqrt(float(i))
        yield abs( square_root(float(i)) - math.sqrt(float((i))) )

for item in test_square_root():
    print item,
于 2013-10-02T00:32:02.907 回答