有时候在实际开发当中,需要执行原生sql语句或者想打印某些带变量参数的字符串,那么就需要对字符串进行格式化处理!
字符串格式化的种类
‘+’ 加法拼接方式% 格式符方式format 方式f 方式
1、加法拼接
>>> name
= 'Thomas'
>>> data
= 'My name is ' + name
>>> data
'My name is Thomas'
2、% 格式符方式
%s :占位符 str()%d :十进制 整数%x :十六进制%f :浮点型 指定长度:%5d :右对齐,不足左边补空格%-5d:- 代表左对齐,不足右边默认补空格%05d:右对齐,不足左边补0 浮点数:%f :默认是输出6位有效数据, 会进行四舍五入 如:指定小数点位数的输出 %.2f—保留小数点后2位‘%4.8f’ 4代表整个浮点数的长度,包括小数,只有当字符串的长度大于4位才起作用.不足4位空格补足,可以用%04.8使用0补足空格
>>> name
= 'Thomas'
>>> height
='170'
>>> data
= 'My name is %s, height %scm'%
(name, height
)
>>> data
'My name is Thomas, height 170cm'
指定长度:
>>> data
= 'My name is %s, height %-5dcm'%
(name, int
(height
))
>>> data
'My name is Thomas, height 170 cm'
>>> data
= 'My name is %s, height %05dcm'%
(name, int
(height
))
>>> data
'My name is Thomas, height 00170cm'
浮点数:
>>> data
= 'My name is %s, height %04.4fcm'%
(name, 170.59
)
>>> data
'My name is Thomas, height 170.5900cm'
3.format 格式
顺序赋值
>>> data
= 'My name is {}, height {}cm'.format
(name, 170.59
)
>>> data
'My name is Thomas, height 170.59cm'
指定下标赋值
>>> data
= 'My name is {1}, height {0}cm'.format
(172.56, name
)
>>> data
'My name is Thomas, height 172.56cm'
指定名称赋值
>>> data
= 'My name is {name}, height {height}cm'.format
(height
=172.56, name
=name
)
>>> data
'My name is Thomas, height 172.56cm'
指定字符串长度 如: 字符串 {:3}–左对齐 数值 {:3}–右对齐 使用**><**可以避免字符串/数值对齐方法不一致 > 右对齐 < 左对齐
>>> dt
= 'My name is Thomas, height 172.56cm, age{:5}'.format
(15
)
>>> dt
'My name is Thomas, height 172.56cm, age 15'
>>> dt
= 'My name is Thomas, height 172.56cm, age{0:#>5}'.format
(15
)
>>> dt
'My name is Thomas, height 172.56cm, age###15'
>>> dt
= 'My name is Thomas, height 172.56cm, age{0:#<5}'.format
(15
)
>>> dt
'My name is Thomas, height 172.56cm, age15###'
中间对齐 中间对齐**^**不足的长度用#表示
>>> data
= 'My name is {name:#^11}, height {height:*^11}cm'.format
(height
=172.56, name
=name
)
>>> data
'My name is ##Thomas###, height **172.56***cm'
4.f 格式化
注意:这种很方便,但是python版本需要在python3.6后的版本才支持该写法,否者会报以下错误:
可以说这种写法是format的升级,format支持一般也都支持
>>> data
= f
'My name is {name}, height {height}cm'
>>> data
'My name is Thomas, height 172.65cm'
>>> data
= f
'My name is {name:#^11}, height {height:*^11}cm'
>>> data
'My name is ##Thomas###, height **172.65***cm'