有时候在实际开发当中,需要执行原生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'