Python 程序设计讲义(28):字符串的用法——格式化字符串:format()方法
Python 程序设计讲义(28):字符串的用法——格式化字符串:format()方法
目录
- Python 程序设计讲义(28):字符串的用法——格式化字符串:format()方法
-
- 一、格式化字符串的语法格式
- 二、参数传递——按参数的顺序传递参数
- 三、参数传递——使用参数序号传递参数
- 四、在花括号内使用格式控制符
-
-
- 1、设置显示宽度
- 2、设置显示类型
- 3、设置对齐方式
- 4、设置填充符号
- 5、设置千位分隔符
- 6、设置显示精度
-
字符串是一个常量,当完成字符串的定义后,字符串的内容就固定了。
一、格式化字符串的语法格式
有时为了更灵活地使用字符串,需要将部分字符进行替换。被替换的字符使用【槽】(相当于C
语言中以%
开头的占位符)来表示。此时的字符串由固定字符和【槽】组成。【槽】使用花括号({}
)表示。可以使用Format()
方法对字符串格式化。
Format()
方法的语法格式如下:
\'固定字符{}固定字符{}...\'.format(参数1,参数2,...)
其中的花括号表示【槽】,一个字符串可以包含一个或多个【槽】。格式化时,将参数传递到【槽】中。
例如:
str1=\"祝{}生日快乐!\".format(\"李菲\")str2=\'\'\'Name={}age={}city={}\'\'\'.format(\"张静\",19,\"新乡市\")print(str1)print(str2)程序运行结果为:祝李菲生日快乐!Name=张静age=19city=新乡市
二、参数传递——按参数的顺序传递参数
在字符串中不仅可以包含一个槽,也可以包含多个槽。如果包含多个槽,可以为每个槽都传递一个参数。
可以按照默认的顺序传递,即:把第一个参数传递给第一个槽,第二个参数传递给第二个槽,以此类推。
r=eval(input(\"请输入圆的半径:\"))c=2*r*3.1416s=r*r*3.1416print(\"圆的周长为:{},圆的面积为:{}\".format(c,s))程序运行结果为:请输入圆的半径:7圆的周长为:43.9824,圆的面积为:153.9384
三、参数传递——使用参数序号传递参数
可以在花括号中指定参数序号来为槽指定要使用的参数值。Format()
方法的参数序号从0
开始,依次递增。
在为槽传递参数时,在槽中输入对应的参数序号。可以为多个槽指定同一个参数序号。
例如:
p=\"河南\"c=\"新乡\"str=\"{0}省{1}市{0}科技学院\"print(str.format(p,c))程序运行结果为:河南省新乡市河南科技学院
四、在花括号内使用格式控制符
字符串的槽不但可以使用参数序号,还可以使用格式控制符。格式控制符可以控制参数在字符串中的显示格式。
为了和序号进行分隔,格式控制符必须以冒号(:
)开始。
语法格式如下:
{参数序号:格式控制符}
格式控制符分为六类:
1、设置显示宽度
宽度是指当前槽对应参数的实际宽度。
语法格式如下:
{:n}
如果设定的字符串的宽度大于槽对应的字符串的实际长度,则以设定的宽度进行显示,多余的部分使用空格填充。
例如:
print(\" 2*2={:5}\".format(2*2))print(\" 20*15={:5}\".format(20*15))print(\"202*120={:5}\".format(202*120))print(\" 10*15={:5}\".format(10*15))程序运行结果为: 2*2= 4 20*15= 300202*120=24240 10*15= 150
如果设定的宽度小于对应参数的实际长度,则以参数的实际长度显示。
例如:
print(\"202*12={:5}\".format(202*12))print(\"1002*1500={:5}\".format(1002*1500))程序运行结果为:202*12= 24241002*1500=1503000
2、设置显示类型
当参数为数值类型时,可以指定值的显示类型。
语法格式如下:
{:str}
如果参数为整数类型,其所支持的形式及含义如下表所示:
b
c
Unicode
字符d
o
x
X
例如:
x,y=97,255print(\"{0}转化为二进制数为:{0:b}\".format(x))print(\"{0}转化为八进制数为:{0:o}\".format(x))print(\"{0}对应的Unicode字符为:{0:c}\".format(x))print(\"{0}转化为十六进制数为:{0:x}\".format(y))print(\"{0}转化为十六进制数为:{0:X}\".format(y))程序运行结果为:97转化为二进制数为:110000197转化为八进制数为:14197对应的Unicode字符为:a255转化为十六进制数为:ff255转化为十六进制数为:FF
当参数为浮点数时,其支持的形式及含义如下表所示:
e
e
为小写E
e
为大写f
%
例如:
x,y=907.125,-2.55e-5print(\"{0}转化为指数形式(e小写)为:{0:e}\".format(x))print(\"{0}转化为指数形式(e大写)为:{0:E}\".format(x))print(\"{0}转化为标准浮点数形式为:{0:f}\".format(y))print(\"{0}转化为百分比形式为:{0:%}\".format(y))程序运行结果为:907.125转化为指数形式(e小写)为:9.071250e+02907.125转化为指数形式(e大写)为:9.071250E+02-2.55e-05转化为标准浮点数形式为:-0.000025-2.55e-05转化为百分比形式为:-0.002550%
3、设置对齐方式
对齐方式指参数在字符串中的水平对齐方式。
其语法格式如下:
{:>|<|^n}说明:(1)>|<|^表示三种对齐方式(2)表示宽度
对齐方式一共有三种:
(1)左对齐(使用<
)
(2)右对齐(使用>
)
(3)居中对齐(使用^
)
例如:
name,age=\"刘平\",20print(\"我叫{0:<10},今年{1:<5}岁了。\".format(name,age))#左对齐print(\"我叫{0:>10},今年{1:>5}岁了。\".format(name,age))#右对齐print(\"我叫{0:^10},今年{1:^5}岁了。\".format(name,age))#居中对齐程序运行结果为:我叫刘平 ,今年20 岁了。我叫 刘平,今年 20岁了。我叫 刘平 ,今年 20 岁了。
4、设置填充符号
当设置的字符串宽度大于字符串的实际宽度时,多余的部分默认使用空格填充。在设置对齐方式后,可以指定填充的字符,填充的字符只能是一个。
语法格式如下:
{:char<|>|^n}说明:(1)char表示填充使用的字符(2)<|>|^表示对齐方式(3)n表示宽度
例如:
name,age=\"刘平\",20print(\"我叫{0:*<10},今年{1:*<5}岁了。\".format(name,age))#左对齐print(\"我叫{0:=>10},今年{1:=>5}岁了。\".format(name,age))#右对齐print(\"我叫{0:-^10},今年{1:-^5}岁了。\".format(name,age))#居中对齐程序运行结果为:我叫刘平********,今年20***岁了。我叫========刘平,今年===20岁了。我叫----刘平----,今年-20--岁了。
5、设置千位分隔符
输出数值类型时,可以指定千位分隔符。
语法格式如下:
{:,}
例如:
x=1257.1254print(\"x={:,}\".format(x))print(\"x={:>15,f}\".format(x))print(\"x={:<15,f}\".format(x))print(\"x={:^15,f}\".format(x))程序运行结果为:x= 1,257.125400x=1,257.125400 x= 1,257.125400
6、设置显示精度
对于浮点数,可以指定输出小数的位数。对于字符串,可以指定输出字符串的最大长度。
格式如下:
{:+.nf}说明:(1)+用来输出正负号。(2)小数点(.)表示精度,n表示要显示的小数位数(3)f表示采用标准输出格式输出浮点数
例如:
x=1257.1254str1=\"河南省新乡市河南科技学院\"print(\"{:.6}\".format(str1))print(\"x={:.3f}\".format(x))print(\"x={:+,.3f}\".format(x))程序运行结果为:河南省新乡市x=1257.125x=+1,257.125