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必须具备的知识,关于这个的知识方面很多,只做了大致了解