列不排队

时间:2016-09-11 15:24:54

标签: python-3.x

我正在努力实现将celcius转换为华氏温度的列样式。

我的问题:当我运行它时,数字排列很好。然而,c和f左对齐并且不在数字之上。这是为什么?

这是我的代码:

def convert(celc):
    fahr = celc * 1.8 + 32
    return fahr

def table():
    format_str = '{0:10} {1:10}'
    c = 'c'
    f = 'f'
    cfhead = format_str.format(c, f)
    print(cfhead)
    for graden in range(-40,30,10):
        result = format_str.format(convert(graden), graden)
        print(result)

table()

1 个答案:

答案 0 :(得分:0)

在您的格式中使用>始终与右侧对齐:

format_str = '{0:>10} {1:>10}'

默认情况下,字符串是左对齐的,数字是右对齐的。

来自Format Specification Mini-Language documentation

  

'<'
  强制字段在可用空间内左对齐(这是大多数对象的默认值)。

     

'>'
  强制字段在可用空间内右对齐(这是数字的默认值)。

使用显式对齐格式化程序,您可以获得所需的输出:

>>> table()
         c          f
     -40.0        -40
     -22.0        -30
      -4.0        -20
      14.0        -10
      32.0          0
      50.0         10
      68.0         20