Python3之字符串格式化format函数详解(上)

Python010

Python3之字符串格式化format函数详解(上),第1张

概述

在Python3中,字符串格式化操作通过format()方法或者f'string'实现。而相比于老版的字符串格式化方式,format()方法拥有更多的功能,操作起来更加方便,可读性也更强。该函数将字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号{}作为特殊字符代替%。

位置设定

默认位置

不指定格式化位置,按照默认顺序格式化

示例结果:

设置位置

设置数字顺序指定格式化的位置

示例结果:

设置关键字

设置关键字指定格式化的内容

示例结果:

参数传递

我们可以传入各种类型参数格式化字符串,即不限于字符串变量或数字等。

元组传参

利用元组传参,传参形式 *tuple

示例结果:

字典传参

示例结果:

列表传参

示例结果:

python字符串格式化的意思就是用format函数格式化字符串的用法。

用法:它通过{}和:来代替传统%方式。

1、使用位置参数

要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表

>>> li = ['hoho',18]

>>> 'my name is {} ,age {}'.format('hoho',18)

'my name is hoho ,age 18'

>>> 'my name is {1} ,age {0}'.format(10,'hoho')

'my name is hoho ,age 10'

>>> 'my name is {1} ,age {0} {1}'.format(10,'hoho')

'my name is hoho ,age 10 hoho'

>>> 'my name is {} ,age {}'.format(*li)

'my name is hoho ,age 18'

2、使用关键字参数

要点:关键字参数值要对得上,可用字典当关键字参数传入值,字典前加**即可

>>> hash = {'name':'hoho','age':18}

>>> 'my name is {name},age is {age}'.format(name='hoho',age=19)

'my name is hoho,age is 19'

>>> 'my name is {name},age is {age}'.format(**hash)

'my name is hoho,age is 18'

3、填充与格式化

:[填充字符][对齐方式 <^>][宽度]

>>> '{0:*>10}'.format(10)  ##右对齐

'********10'

>>> '{0:*<10}'.format(10)  ##左对齐

'10********'

>>> '{0:*^10}'.format(10)  ##居中对齐

'****10****'

4、精度与进制

>>> '{0:.2f}'.format(1/3)

'0.33'

>>> '{0:b}'.format(10)    #二进制

'1010'

>>> '{0:o}'.format(10)     #八进制

'12'

>>> '{0:x}'.format(10)     #16进制

'a'

>>> '{:,}'.format(12369132698)  #千分位格式化

'12,369,132,698'

5、使用索引

>>> li

['hoho', 18]

>>> 'name is {0[0]} age is {0[1]}'.format(li)

'name is hoho age is 18

占位符,顾名思义就是插在输出里站位的符号。占位符是绝大部分编程语言都存在的语法, 而且大部分都是相通的, 它是一种非常常用的字符串格式化的方式。

常用占位符的含义 s : 获取传入对象的 str 方法的返回值,并将其格式化到指定位置 r : 获取传入对象的 repr 方法的返回值,并将其格式化到指定位置

c : 整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置

o : 将整数转换成 八 进制表示,并将其格式化到指定位置

x : 将整数转换成十六进制表示,并将其格式化到指定位置

d : 将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置

e : 将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)

E : 将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)

f : 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)

F : 同上

g : 自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)

G : 自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以架尉 信(同音):276 3177 065 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

% : 当字符串中存在格式化标志时,需要用 %%表示一个百分号

常用占位符应用举例 格式化字符串

格式化整数 print

格式化浮点数

格式化浮点数(指定保留小数点位数)

指定占位符宽度

格式比较难看, 下面我们来做一下对齐

指定占位符宽度 - 左对齐

注:

格式化可选标志符, 可选参数

右对齐;正数前加正好,负数前加负号; 左对齐;正数前无符号,负数前加负号; 空格 右对齐;正数前加空格,负数前加负号;

0 右对齐;正数前无符号,负数前加负号;用0填充空白处

如: -10s, 表示10个字符串位置, 左对齐,后面用空格填充

指定占位符 - 用0当占位符

总结