用Python 3制作表格(初学者)

时间:2017-05-10 09:57:49

标签: python python-3.x

所以我刚开始在学校学习Python 3,我们必须创建一个函数 将 a 作为参数,选择合理的x值,并返回 a

我们还必须制作一个测试它的功能。我们必须编写一个名为test_square_root的函数来打印一个表,其中第一列是一个数字, a ;第二列是用第一个函数计算的 a 的平方根; 第三列是math.sqrt计算的平方根;第四列是两个估计值之差的绝对值。

我编写了第一个查找平方根的函数,但我不知道如何创建这样的表。我在这里读过有关Python3中表格的其他问题,但我仍然不知道如何将它们应用到我的函数中。

def mysqrt(a):
    for x in range(1,int(1./2*a)):
        while True:
            y = (x + a/x) / 2
            if y == x:
                break
            x = y
    print(x)
print(mysqrt(16))

2 个答案:

答案 0 :(得分:2)

如果您被允许使用库

from tabulate import tabulate
from math import sqrt


def mysqrt(a):
    for x in range(1, int(1 / 2 * a)):
        while True:
            y = (x + a / x) / 2
            ifjl y == x:
                break
            x = y
    return x


results = [(x, mysqrt(x), sqrt(x)) for x in range(10, 20)]
print(tabulate(results, headers=["num", "mysqrt", "sqrt"]))

输出

  num    mysqrt     sqrt
-----  --------  -------
   10   3.16228  3.16228
   11   3.31662  3.31662
   12   3.4641   3.4641
   13   3.60555  3.60555
   14   3.74166  3.74166
   15   3.87298  3.87298
   16   4        4
   17   4.12311  4.12311
   18   4.24264  4.24264
   19   4.3589   4.3589

在这里没有关于如何打印表格数据(有和没有库)的大量例子:Printing Lists as Tabular Data

答案 1 :(得分:0)

def mysqrt(a):
    for x in range(1, int(1 / 2 * a)):
        while True:
            y = (x + a / x) / 2
            ifjl y == x:
                break
            x = y
    return x


results = [(x, mysqrt(x), sqrt(x)) for x in range(10, 20)]
print(tabulate(results, headers=["num", "mysqrt", "sqrt"]