我将Ipython 7.0.1
与Python 3.6.9
一起使用
我想用数字格式的迷你语言右对齐数字。我以1
和11
为例来说明我要填充到2个字符的1位和2位数字。
对于零填充,一切正常,>
是可选的,因为它是默认设置:
In [0]: print(f"{1:02d}\n{11:02d}\n{1:0>2d}\n{11:0>2d}")
01
11
01
11
但是当我想用空格填充时,只要我将空格保留为默认值,它也可以工作:
In [1]: print(f"{1:2d}\n{11:2d}\n{1:>2d}\n{11:>2d}")
1
11
1
11
但是,如果我明确输入空格,我会对结果感到惊讶:
In [2]: print(f"{1: 2d}\n{11: 2d}\n{1: >2d}\n{11: >2d}")
1
11
1
11
那是为什么?
答案 0 :(得分:0)
全部在文档中...
format_spec :: = [[填充]对齐] [签名] ...
如果指定了有效的对齐值,则可以在其前面加上填充字符
由于fill
和sign
都可以是space
,因此将是模棱两可的,因此space
作为fill
的后面必须是{{1} }。
这是Python解释最后一行的方式:
align