722 字
4 分钟
Python 字符串格式化方法总结
背景
字符串格式化的主要使用场景是让变量打印出来,让人看着美观、易于查看。有时会直接print出来;有时会把这些内容写到文件里面,也就是进行日志记录。比如日志文件,设置好格式,后期在查询问题时,就可以快速定位。
字符串格式化就类似于手机APP界面一样,UI、排版设计都是为了使人机交互更加直观,内容让人看起来更美观、更舒服。
字符串格式化方法
- 方法 1
在 python 2.6 之前,利用 百分号% 占位符,进行格式化
>>> name = '张三'>>> print('哈喽,%s'%name)哈喽,张三- 方法 2 ---------- 现阶段使用最多的方法
Python2.6 引入,性能比 % 更强大,字符串的 format 方法
>>> name = '张三'>>> '哈喽,{}'.format(name)'哈喽,张三'- 方法 3 ---------- 推荐使用的方法
为了进一步简化格式化方法,Eric Smith 在2015年提交了 PEP 498 — Literal String Interpolation 提案。字符串开头加上一个字母 f ,是在 Python3.6 新加入的字符串格式化方法
>>> name = '张三'>>> f'哈喽,{name}''哈喽,张三'推荐大家用最新的方法
推荐方法常规用法
设定浮点数精度
需要加一个 :(冒号)再加一个 .(英文句号)然后跟着小数点位数最后以f(float)结尾
num = 3.1415926 #山巅一寺一壶酒print(f'圆周率保留两位小数为:{num:.2f}')
#圆周率保留两位小数为:3.14数字格式化为百分数
方法与浮点数格式化类似,但是要用%代替结尾的f
a = 1b = 3
c = a / b
print(f'百分数为:{c:%}')#百分数为:33.333333%
print(f'百分数保留两位小数为:{c:.2%}')#百分数保留两位小数为:33.33%格式化 datetime 对象
支持的格式详见官方文档: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes
import datetime
now = datetime.datetime.now()print(f'{now:%Y-%m-%d %H:%M:%S}')#2021-01-19 16:44:32字符串前补零
{var:0len} 方法来进行字符串补零,len是最终返回字符串的长度
num = 123print(f"{num:05}")#00123字符串居中
想要实现字符串居中,可以通过 var:^N 的方式。其中var是你想要打印的变量,N是字符串长度。如果N小于var的长度,会打印全部字符串。
test = 'hello world'
print(f'{test:^20}')# hello world
print(f'{test:*^20}')#****hello world*****
print(f'{test:^2}')#hello world进制转换
print(f'{7:b}')#111
bases = {"b": "bin", "o": "oct", "x": "hex", "X": "HEX", "d": "decimal"}
for n in range(1,21): #print(n) for base,desc in bases.items(): print(f'{desc}:{n:5{base}}',end=' '*5) print()
参考文章
历史相关文章
以上是自己实践中遇到的一些问题,分享出来供大家参考学习,欢迎关注微信公众号:DataShare ,不定期分享干货