1.使用%操作符:'%[-][+][0][m][.n]格式化字符'%exp
- - :可选参数,用于指定左对齐,正数前无符号,负数前加负号。
- +:可选参数,用于指定右对齐,正数前加正号,负数前加负号。
- 0:可选参数,表示右对齐,正数前无符号,负数前加负号,用0填充空白处(通常与m参数一起使用)。
- m:可选参数,表示占有宽度。
- .n:可选参数,表示小数点后保留的位数。
- exp:要转换的项。如果要指定的项有多个,需要通过元组的形式进行指定,但不能使用列表。
- 格式化字符串:用于指定类型,如下表:
格式字符 | 说明 | 格式字符 | 说明 |
%s | 字符串(采用str()显示) | %r | 字符串(采用repr()显示) |
%c | 单个字符 | %o | 八进制整数 |
%d 或 %i | 十进制整数 | %e | 指数(基底写为e) |
%x | 十六进制整数 | %E | 指数(基地写为E) |
%f 或 %F | 浮点数 | %% | 字符% |
例子如下:
template='编号:%03d\t名称:%s\t网址:http:www.%s.com' #定义格式化模板
context=(1,'CSDN网站','csdn') #定义要转换的内容,因为要转换的项有多个,所以用元组的形式
print(template%context) #格式化输出
#运行结果
编号:001 名称:CSDN网站 网址:http:www.csdn.com
注:使用%操作符是早期python中提供的方法,从python2.6版本开始,出现了format()方法对字符串进行格式化。主要掌握format()方法即可。
2.使用字符串对象提供的format()方法进行字符串的格式化:str.format(args)
- str:指定字符串的显示样式(即模板)。
- args:要转换的项,如果有多项,则用逗号分隔。
在创建模板时,需要用 ‘{}’ 和 ‘:’ 指定占位符,基本语法格式如下:
{[index][:[[fill]align][sign][#][width][.precision][type]]}
- index:可选参数,用于指定要设置格式的对象在参数列表中的索引位置,索引值从0开始。如果省略,则根据值的先后顺序自动分配。
- fill:可选参数,用于指定空白处填充的字符。
- align:可选参数,用于指定对齐方式(<:左对齐;>:右对齐;=:内容右对齐,符号放在填充内容的最左侧,且只对数字类型有效;^:居中),需要配合width一起使用。
- sign:可选参数,用于指定无符号数。(+:整数加正号,负数加负号;-:负数加负号,整数不变;空格:正数加空格,负数加负号)
- #:可选参数,用于2进制,8进制,16进制,如果加上#,表示会显示‘0b/0o/0x’前缀,否则不显示前缀。
- width:可选参数,用于指定所占宽度。
- .precision:可选参数,用于制定保留的小数位数。
- type:可选参数,用于指定类型,其值如下表:
格式字符 | 说明 | 格式字符 | 说明 |
s | 对字符串类型格式化 | b | 将十进制整数自动转换为二进制表示再格式化 |
d | 十进制整数 | o | 对十进制整数自动转换为八进制表示再格式化 |
c | 将十进制整数自动转换为对应的Unicode字符 | x 或 X | 对十进制整数自动转换为十六进制表示再格式化 |
e 或 E | 转换为科学记数法表示再格式化 | f 或 F | 转换为浮点数(默认小数点后保留6位)再格式化 |
g 或 G | 自动在e 和 f 或E和F中切换 | % | 显示百分比(默认显示小数点后6位) |
例子如下:
#示例1
template='编号:{:0>9s}\t名称:{:s}\t网址:http:www.{:s}.com' #定义格式化模板
print(template.format('1','CSDN网站','csdn')) #格式化输出
template2='编号:{0:0>9s}\t名称:{1:s}\t网址:http:www.{2:s}.com'
print(template2.format('2','百度','Baidu'))
#运行结果
编号:000000001 名称:CSDN网站 网址:http:www.csdn.com
编号:000000002 名称:百度 网址:http:www.Baidu.com
#示例2
str1,str2,str3,str4=map(str,input().split())
template='{:0>6s}\t{:s}\t{:s}\t¥{:.2f}'
print(template.format(str1,str2,str3,float(str4)))
#运行结果
1 电脑 联想 4500
000001 电脑 联想 ¥4500.00