Python格式化字符串

格式化字符串

在使用Python,经常会用到print,为了输出日志,经常会用到%-formattingstr.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

如果低于Python3.6,可以通过pip install future-fstrings即可,在相应的py脚本文件里不需要加import这个库,但是需要头部加上# coding: future_fstrings

你可能感兴趣的:(Python格式化字符串)