python字符串输出格式化的用法(Python3种格式化字符串方法)
python字符串输出格式化的用法(Python3种格式化字符串方法)Python3.6 版本开始出现了此新的格式化字符串,性能又优于前面两种方式。4. 官方推荐用的方式,%方式在后面的版本终将会被淘汰。1. 不需要理会数据类型。2. 单个参数可以多次输出,参数顺序可以不同。3. 填充方式十分灵活,对齐方式异常强大。
前言使用Python的伙伴们,经常会用到print输出日志进行调试,那么如何格式化输出字符串?今天跟大家继续分享关于Python的小知识。
说明我们经常会用到%-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'
从这里我们可以看出,第二种优于第一种方式:
1. 不需要理会数据类型。
2. 单个参数可以多次输出,参数顺序可以不同。
3. 填充方式十分灵活,对齐方式异常强大。
4. 官方推荐用的方式,%方式在后面的版本终将会被淘汰。
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() 接变量后变超长的问题。
f-string格式化字符串是否可以用于低版本的Python3?如果低于Python3.6,可以通过pip install future-fstrings即可,在相应的py脚本文件里不需要加import这个库,但是需要头部加上# coding: future_fstrings。
但是我还是建议升级到Python3.7版本,因为最新版本解决了一些BUG。
结束语Python2.X版本现在也不会在支持,现在也开始转向Python3.X版本,强烈推荐第三种方式进行格式化字符串。
你们用的是哪种方式?可以进行评论。
喜欢本文的童鞋,可以关注我 收藏,不明白的地方也可以评论留言。