Format的使用
- 一、format是什么?
- 二、使用
- 1.fill
- 2.align
- 3.sign
- 4.#
- 5.width
- 6.grouping_option
- 7.precision
- 8.type
- 总结
一、format是什么?
format为python的内置函数,格式为format(value,format_space),意为将value转换为format_space控制的格式来表示,目前大多数都使用标准格式化语法。
默认format_space是一个空白字符,返回value的字符样式,产生与str一样的结果
标准格式说明符的一般形式:
fill(填充): <any character>
align(对齐):"<" | ">" | "=" | "^"
sign(数字类型):"+" | "-" | " "
width(宽度):digit+
grouping_option(分组):"_" | ","
precision(精度):diagit+
type(类型):"b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
二、使用
{}:这其中的内容为需要替换的内容,不在其中的为文本
{}中可以放0,1,2…的序列,指明替换的位置
s="shfjvnt"
t=2345654789
w=456
print("{1},{0},{2}".format(s,t,w))
#2345654789,shfjvnt,456
1.fill
用于填充的单个字符,它可以为任意字符,如果省略则默认为空格符。
代码如下:
s="shfjvnt"
print("{:*20}".format(s))#报错,必须指定显示指定对齐方式
print("{:*^20}".format(s))
#******shfjvnt*******
2.align
对齐方式 | 意义 |
“<” | 左对齐 |
“>” | 右对齐 |
“^” | 居中对齐 |
“=” | 强制将填充放置在符号(如果有)之后但在数字之前 |
代码如下(示例):
s="shfjvnt"
t=2345654789
w=456
print("{0:*^10}".format(w))
#***456**** 居中对齐
print("{0:*>20}".format(t))
#**********2345654789 右对齐
print("{:*<20}".format(s))
#shfjvnt************* 左对齐
print("{:<s}".format(s))
#shfjvnt 忽略宽度,不会报错
3.sign
仅对数字类型有效
选项 | 意义 |
“+” | 表示正号 |
“-” | 表示负号(默认) |
print("{:+d}".format(12345))
#+12345
print("{:-d}".format(12345))
#12345
4.#
此选项仅对整数、浮点数和复数类型有效。
类型 | 结果 |
int | 使用二进制、八进制或十六进制输出时,输出值会分别添加相应的 ‘0b’, ‘0o’, or ‘0x’ 进制符 |
float,complex | 就算原本无小数点,也会显示小数点 |
print("{:#d}".format(w))
#456
5.width
定义宽度
当未显式给出对齐方式时,在 width 字段前加一个零 ('0') 字段将为数字类型启用感知正负号的零填充。 这相当于设置 fill 字符为 '0' 且 alignment 类型为 '='
6.grouping_option
选项 | 意义 |
" ," | 千位分隔符 |
“_” | 对float类型和int表示类型 ‘d’ 使用下划线作为千位分隔符。 对于整数表示类型 ‘b’, ‘o’, ‘x’ 和 ‘X’,将为每 4 个数位插入一个下划线。 对于其他表示类型指定此选项则将导致错误。 |
7.precision
表示浮点数小数的部分精度或者字符串的最大输出长度
对于整数值则不允许使用 precision
8.type
意为表达类型
类型 | 意义 |
b | 二进制 |
c | 字符 |
d | 十进制整数 |
o | 八进制 |
x | 十六进制,字母部分小写 |
X | 十六进制,字母部分大写 |
n | 数字 |
None | 与"d"相同 |
总结
python标准格式化是学习python必须具备的知识,关于这个的知识方面很多,只做了大致了解