我正在努力实现将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()
答案 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