、格式化字符串是指先制定一- 个模板,在这个模板中预留几个空位,然后再根据需要填上相应的内容。这些空位需要通过指定的符号标记( 也称为占位符),而这些符号还不会显示出来。在Python中,格式化字符串有以下两种方法:
**1.使用“%”操作符
语法格式如下:

"%[-][+][0][m][ .n]格式化字符"%exp

参数说明:

  • -:可选参数,用于指定左对齐,正数前方无符号,负数前面加负号。
  • +:可选参数,用于指定右对齐,正数前方加正号,负数前方加负号。
  • 0:可选参数,表示右对齐,正数前方无符号,负数前方加负号,用0填充空白处(一般与m参数一起使用)。
  • m:可选参数,表示占有宽度。
  • .n:可选参数,表示小数点后保留的位数。
  • 格式化字符:用于指定类型。
  • exp:要转换的项。如果要指定的项有多个,需要通过元组的形式进行指定,但不能使用列表。
    常用的格式化字符

格式化字符

说明

%s

字符串(采用str()显示)

%c

单个字符

%d或者%i

十进制整数

%x

十六进制整数

%f或者%F

浮点数

%r

字符串(采用repr()显示)

%o

八进制整数

%e

指数(基底写为e)

%E

指数(基底写为E)

%%

字符%

例如:

my_name = 'Zed A. Shaw' 
my_age = 35 # not a lie
my_height = 74 # inches
my_weight = 180 # lbs
my_eyes = 'Blue' 
my_teeth = 'White' 
my_hair = 'Brown' 

print ("Let's talk about %s." % my_name)
print ("He's %d inches tall." % my_height)
print ("He's %d pounds heavy." % my_weight)
print ("Actually that's not too heavy.")
print ("He's got %s eyes and %s hair." % (my_eyes, my_hair))
print ("His teeth are usually %s depending on the coffee." % my_teeth)
# this line is tricky, try to get it exactly right
print("If I add %d, %d, and %d I get %d." % 
    (my_age, my_height, my_weight, my_age + my_height + my_weight))

输出结果:

Timestamp 格式化字符串 格式化字符串%n_十进制


2.使用字符串对象的format()方法

、 字符串对象提供了foma()方法用于进行字符串格式化,语法格式如下:

str. format(args)

参数说明:

  • str:用于指定字符串的显示样式(即模板)。
  • args:用于指定要转换的项,如果有多项,则用逗号进行分隔。

下面重点介绍创建模板。在创建模板时,需要使用“{}”和“.”指定占位符,语法格式如下:

{[index][:[[fil1]align][sign][#][width][ .precision][type]]}

参数说明:

  • index:可选参数,用于指定要设置格式的对象在参数列表中的索引位置,索引值从0开始,如果省略,则根据数值的先后顺序自动分配。
  • fill:可选参数, 用于指定空白处填充的字符。
  • align:可选参数,用于指定对齐方式(值为“<”时表示内容左对齐;值为“>”时表示内容右对齐:值为“=”时表示内容右对齐,将符号放在填充内容的最左侧,且只对数字类型有效;值为“^”时表示内容居中),需要配合width一起使用。
  • sign:可选参数,用于指定有无符号数(值为“+”表示正数加正号,负数加负号;值为”表示正数不变:负数加负号,值为空格表示正数加空格,负数加负号)。
  • #:可选参数,对于二进制数、八进制数和十六进制数,如果加上#,表示会显示0/b/0o/0x前缀,否则不显示前缀。
  • width:可选参数,用于指定所占宽度。
  • .precision:可选参数,用于指定保留的小数位数。
  • type :可选参数,用于指定类型。

format()方法常用的格式化字符

格式化字符

说明

s

对字符串类型格式化

d

十进制整数

c

将十进制整数自动转换成对应的Unicode字符

e或者E

转换为科学计数法表示再格式化

g或者G

自动在e和f或者E和F中切换

b

将十进制整数自动转换成二进制表示再格式化

o

将十进制整数自动转换成八进制表示再格式化

x或者X

将十进制整数自动转换成十六进制表示再格式化

f或者F

转换为浮点数(默认小数点后保留6位)再格式化

%

显示百分比(默认显示小数点后6位)

例如:

template = "编号:{:0>9s}\t公司名称:{:s}\t官网:http://www.{:s}.com"
contest = template.format("1","百度","baidu")
print(contest)

输出结果:

Timestamp 格式化字符串 格式化字符串%n_Timestamp 格式化字符串_02