说明
我们经常会用到%-formatting和str.format()来格式化,而在Python 3.6版本开始,增加了f-strings语法,下面我将详细的介绍这三种方式。
1. %-formatting格式化字符串
最早的格式化是用%(百分号), 它这么用:
In : name = 'World' In : id = '10' In : 'Hello %s,id=%s' %(name,id) Out: 'Hello World,id=10'
这里用的%s表示格式化成字符串,另外常用的是%d(十进制整数)、%f(浮点数)。
另外也支持使用字典的形式:
In : 'Hello[%(name)s],id=%(name)s' % {'id': 10, 'name': 'World'} Hello[World],id=10
2. str.format()格式化字符串
常规用法
In : name = 'World' In : 'Hello {}' %(name) Out: 'Hello World'
通过位置访问:
In : '{2}, {1}, {0}'.format('a', 'b', 'c') Out: 'c, b, a'
通过关键字访问:
In : 'Hello {name}'.format(name='testerzhang') Out: 'Hello testerzhang'
3. f-string格式化字符串(推荐)
Python3.6 版本开始出现了此新的格式化字符串,性能又优于前面两种方式。
In : name = "testerzhang" In : print(f'Hello {name}.') In : print(f'Hello {name.upper()}.') Out: Hello testerzhang. Out: Hello TESTERZHANG. In : d = {'id': 1, 'name': 'testerzhang'} In : print(f'User[{d["id"]}]: {d["name"]}') Out: User[1]: testerzhang
从这里我们可以看出,第三种优于第二种方式:
1. 第二种方式的变量不易阅读,而第三种更加直观。
2. 解决str.format() 接变量后变超长的问题。
强烈推荐大家使用第三种方式哦~感兴趣的小伙伴赶紧试试哦~如果还想知道更多的python知识,可以到python学习网进行查询。