在没有模块的情况下在 python 中打印 table

Printing table in python without modules

我们有这个作业,我花了一些时间...
测试脚本要我们打印这个:

>>> input([0, 1, 2, 3])
     x | sin(x) | cos(x) | tan(x)
---------------------------------
  0.00 |   0.00 |   1.00 |   0.00
  1.00 |   0.84 |   0.54 |   1.56
  2.00 |   0.91 |  -0.42 |  -2.19
  3.00 |   0.14 |  -0.99 |  -0.14

不使用模块(我们可以使用模块 MATH 只是以此作为提示 https://docs.python.org/3/library/string.html#format-specification-mini-language

请帮忙。 这就是我现在拥有的:

import math
def input(list):
    rad=[]
    sinvr=[]
    cosvr=[]
    tanvr=[]
    for el in list:
        sin=math.sin(el)
        sinvr.append(sin)
        cos=math.cos(el)
        cosvr.append(cos)
        tan=math.tan(el)
        tanvr.append(tan)
    print ("     x | sin(x) | cos(x) | tan(x)\n---------------------------------")

首先打印前两行。 然后添加此代码:

for i in YOUR_LIST:
    print '%6.2f  |  %6.2f  |  %6.2f  |  %6.2f'%(i,math.sin(i),math.cos(i),math.tan(i))

希望对您有所帮助!

在 python3 中,您可以使用来自字符串的 format 方法:

print("{:^10.2f}|{:^10.2f}|{:^10.2f}|{:^10.2f}|".format(x,sin(x),cos(x),tan(x)))

注意^是居中的意思,10是'cell'的总大小,.2f是打印一个小数点后2位的浮点数,改一下根据您的需要。