文章目录

  • %运算符形式
  • format函数


%运算符形式

形式

格式字符串 % (值1,值2,...)

格式字符串包括:固定文本和格式说明符
格式说明符语法

% [(key)][flags][width][.precision][Length]type

[ ]里的为可选
key: 映射键(如(参数是字典)的键)‘%(lang)s’
flags: 为修改输出格式的字符集
width: 为最小宽度,如果为则使用下一个参数值
precision: 为精度,如果为
,则使用下一个参数值
Length: 为修饰符(h,l或L),Python忽略该字符
type: 为格式化类型字符

flags

’0’

数值类型格式化结果左边用0填充

’-’

结果左对齐

’ ’

对于正值,结果中将包括一个前导空格

’+’

数值结果总是包括一个符号(+或-)

’#’

使用另一种格式转换(与type输出有关)

type

%d或%i

有符号整数(十进制数)

%o

有符号整数(八进制)

%u

同%d(已过时)

%x或%X

有符号整数(16进制数),当flags=’#’时,输出前缀’0x’(或‘0X’)

%e或%E

浮点数字(科学计数法),当flags=’#’时,总是带小数点

%f或%F

浮点数字(用小数点符号)当flags=’#’时,总是带小数点

%g或%G

浮点数字(根据数值大小采用%e或%f)当flags=’#’时,总是带小数点,保留后面的0

%c

字符及其ASCII码

%r

字符串,使用转换函数repr(),当flags=’#’且指定precision时 截取precision个字符

%s

字符串,使用转换函数str(),当flags=’#’且指定precision时 截取precision个字符

%a

字符串,使用转换函数ascii(),当flags=’#’且指定precision时 截取precision个字符

format函数

format(value) #等同于str(value)
format(value,format_spec)	#等同于type(value).__format__(format_spec)

格式说明符(format_spec)的基本格式如下

[[fill]align][sign][#][0][width][,][.precision][type]

例子

>>> format(3.123,'=+#010.5f')
'+003.12300'
>>> format(20,'#0x')
'0x14'

fill(可选): 为填充字符,不能是{}
align:为对其方式(”<”左对齐,”>”右对齐,”^”居中对齐,”=”填充位于符号和数字之间,如’+000000120’)
sign(可选): 为符号字符,包括”+”,”-”。(正数带空格,负数带”-”)
#(可选): 使用另一种格式
0(可选): 为数值类型格式化结果左边用0填充
width(可选): 最小宽度
precision(可选): 精度,针对浮点数
type: 是格式化类型字符

说明

b

二进制

c

字符,整数转换为对应的unicode

d

十进制数

o

八进制数

x或X

16进制数,当标识符为#时,输出前缀”0x”或0X

e或E

浮点数字(科学计数法)当标识符为#时,总是带小数点

f或F

浮点数字(用小数点符号),当标识符为#时,总是带小数点

g或G

浮点数字(根据值得大小采用e或f)当标识符为#时,总是带小数点,且保留后面的0

n

数值,使用本地千分位分隔符

s

字符串,使用转换函数str(),当标识符为#且指定precision时截取precision个字符

%

百分比

_

十进制千分位分隔符或二进制4位分隔符

字符串的format方法

str.format(格式字符串,值1,值2,...)		#类方法
格式字符串.format(值1,值2,...)			#对象方法
格式字符串.format_map(mapping)

格式说明符的语法如下
{[索引和键]: format_spec}