为什么我的半径图中没有一半的数字排成一行

时间:2014-10-04 17:15:42

标签: python debugging python-3.x formatting

程序似乎工作正常。它给出了一个输出,但从数字6到数字9,它会使我的圆周偏离线。这是一个格式问题,如果是这样,我需要做些什么来解决这个问题。我正在使用python 3.4。

def main():

    print ('Radius\tArea\tCircumference')
    print ('-----------------------------')


for Radius in range(1 , 11):
    round (3)

    Area = (Radius)**2*3.14
    Circumference =  (Radius)*2*(3.14)
    a = Radius
    b = Area
    c = Circumference
    d = round(a, 3)
    e = round(b, 3)
    f = round(c, 3)

    print (d, '\t', (e), '\t', (f))

这是我得到的结果

1    3.14     6.28
2    12.56    12.56
3    28.26    18.84
4    50.24    25.12
5    78.5     31.4
6    113.04             37.68
7    153.86             43.96
8    200.96             50.24
9    254.34             56.52
10   314.0    62.8

1 个答案:

答案 0 :(得分:1)

您可以使用string formatting使用str.format,使输出更具吸引力:

print ('{:2d}{:10.3f}{:10.3f}'.format(d, (e), (f)))

在这种情况下,格式字符串表示:

在2个字符宽的整数字段中右对齐打印第一个值。

在十进制字段中右对齐打印第二个值10个字符宽,小数点右边有3个位置。

在十进制字段中右对齐打印第三个值,宽度为10个字符,小数点右边有3个位置。

另请注意:如果仅使用round()影响打印输出,则可以跳过该步骤。字符串格式化程序会为您舍入数字,因此您只能打印a,b,c而不是d,e,f

print ('{:2d}{:10.2f}{:10.2f}'.format(a, b, c))