用来按照你的需求格式化输出各种字符,比如"{:#06x}".format(i)
。
首先,我们需要知道,都是"{}".format()
格式,大括号中的内容就是指定格式化的样式,以:
开头。常见的有:
标志 | 意义 |
---|---|
:< | 左对齐 |
:> | 右对齐 |
:^ | 居中 |
:= | 把标志放到左边,后面可以跟数字,表示中间空多少位置 |
:+ | 在数字前面增加正负号 |
:- | 只能用作负数,增加负号 |
: | 默认,用空格作为替换符 |
:, | 千位分隔符,对于比较长的数字,按照每3位用逗号隔开,比如100,000 |
:_ | 这个就是用下划线隔开 |
:b | 格式化为二进制 |
:c | 格式化为unicode |
:d | 格式化为十进制 |
:e | 把数字格式化为科学记数法,e是小写 |
:E | 同上,E大写 |
:f | 指定保留几位小数,默认有默认长度,可以自己设定,比如:.2f,那么45就会变成45.00 |
:F | 同上,只不过inf会转为大写的INF或者NAN |
:g | 标准格式化 |
:G | 同上,有些字符会大写 |
: o | 八进制 |
:x | 十六进制 |
:X | 同上,只不过会大写 |
:n | 数字格式化 |
:% | 百分比 |
使用举例
格式 | 数值 | 输出 | 描述 |
---|---|---|---|
:+.3f | 3.14159 | +3.141 | 设定小数点多少位,必须冒号后面跟点,不然不起作用 |
:b | 11 | 1011 | 转为二进制 |
:05b | 11 | 01011 | 转为二进制,冒号后面的0表示填充字符,上面已经介绍过,如果没有,默认空格填充,5表示长度为5,不足填充 |
:#07b | 11 | 0b01011 | 转为二进制,#表示输出数值进制的前缀,比如二进制,就在前面家0b,十六进制就家0x,0还是表示填充,7表示总长度,这里要算上前缀 |
https://www.w3schools.com/python/ref_string_format.asp
https://www.runoob.com/python/att-string-format.html
https://docs.python.org/zh-cn/3/library/string.html#formatstrings