Python 字符串-格式化字符串

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

这篇文章是关于格式化方法的总结,写的不太好理解,具体请看这篇博文:

https://blog.csdn.net/beautiful77moon/article/details/86632493

你可能感兴趣的:(python)