格式化字符串

在Python中格式化字符串的方法:%占位操作符、format函数、F-strings

 

1、%占位操作符
格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。

Python用一个元组将多个值传递给模板,每个值对应一个格式符。

在模板和元组之间,有一个%号分隔,它代表了格式化操作。

Python中的转换说明符:

%s      字符串 (采用str()的显示)         str()得到的字符串是面向用户的,具有较好的可读性
%r      字符串 (采用repr()的显示)       repr()得到的字符串是面向机器的
%c     单个字符
%b     二进制整数
%d     十进制整数
%i      十进制整数
%o     八进制整数
%x     十六进制整数
%e     指数 (基底写为e)
%E    指数 (基底写为E)
%f     浮点数
%F    浮点数,与上相同
%g    指数(e)或浮点数 (根据显示长度)
%G   指数(E)或浮点数 (根据显示长度)
$$    表示$符号

 

2、format函数

基本语法是通过 {} 和 : 来代替 %

使用方法有两种:b.format(a)和format(a,b)

format函数可以接受不限个参数,位置可以不按顺序,也可以向 str.format() 传入对象
format是一个方法而不是操作符,处理参数会更加明确。如果传入一个字符串,它就会被解释为一个字符串。传入只包含一个字符串的元组,那它就被解释为只包含一个字符串的元组。

format用法:
1)、通过位置
2)、通过关键字
3)、通过对象属性:在类里使用
4)、通过下标      例子:l1 = ['a', 18]
                                        '{0[0]} is {0[1]} years old. {0[0]}'.format(l1)
5)、填充与对齐:^、<、>分别是居中、左对齐、右对齐,后面带宽度。:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充。
                         例子:'{:>10}'.format('哈行哈哈') ---居右对齐,总宽度为10,剩下的用空格填充
                                    '{:A>10}'.format('哈行哈哈')----居右对齐,总宽度为10,剩下的用A填充
6)、精度与类型f(数字格式化)
7)、其他进制:b、d、o、x分别是二进制、十进制、八进制、十六进制
8)、千位分隔符:'{:,}'.format(数字)         例子: '{:,}'.format(100000) 结果为:100,000

 

数字格式化
{:.2f}         保留小数点后两位
{:+.2f}       带符号保留小数点后两位
{:.0f}         不带小数
{:0>2d}     数字补零 (填充左边, 宽度为2)
{:x<4d}     数字补x (填充右边, 宽度为4)
{:x<4d}     数字补x (填充右边, 宽度为4)
{:,}           以逗号分隔的数字格式(千位分隔符)
{:.2%}      百分比格式
{:.2e}       指数记法
{:10d}      右对齐 (默认, 宽度为10)
{:<10d}    左对齐 (宽度为10)
{:^10d}     中间对齐 (宽度为10)
{{}}           表示{}符号

 

3、F-strings

F-strings是一个以f为前缀,其中包含了表达式的字符串。表达式的结果将显示在其所在的位置上

如果变量与替换字段同名,就可以使用f字符串

1)、F-strings提供了一种明确且方便的方式将python表达式嵌入到字符串中来进行格式化

2)、F-strings中可以执行函数

3)、F-strings的运行速度比%和format格式化快


总结:
1、简单的用%,超过两个值一般都用format
2、编写新代码时,应选择使用字符串方法format,它融合并加强了%方法的优点

 

posted @ 2018-06-06 17:29  字符编码  阅读(808)  评论(0编辑  收藏  举报