python格式字符_相当实用的Python格式字符串,格式化
格式化字符串(string formatting)是以指定
输出参数格式
和
相对位置
来“美化”字符串。
输出参数格式
包括数字的小数点位数、字符串大小写等,
相对位置
标注出被格式化的词是在句中的位置。比如:
print('It costs %.2f.' %(123.456))
It costs 123.46.
其中 %.2f 是 123.456 的输出参数格式,.2f 代表保留小数点两位,而 %.2f 所在的位置在 costs 后面,意思说将 123.456 变成 123.46 后插在 costs 后面。
格式化字符串有四种方法:
用 % 字符 (上面用的)
用 $ 字符
用 format() 函数
用 f-string
本文中主要以下面这句话举例子,即“在 2020 年 3 月 4 日,阿里巴巴的市值为 553789 百万美元”。
s = 'On 04 Mar 2020, the market cap of Alibaba is 553789 mio USD.'
首先定义市值(Mcap)和货币单位(curr)两个变量。
Mcap = 553789
curr = 'USD'
下面开始展示四种格式化的方法。
1. 用 % 字符格式化
print('The market cap of Alibaba is %d mio %s.' %(Mcap, curr))
The market cap of Alibaba is 553789 mio USD.
该方法的
核心范式
是:
步骤:
首先写句子;
再用 % 加小括号,里面列出要被格式化的变量名;
最后在句子一一对应变量名的地方写出 %x(d 代表数字,s 代表字符串,等等)。
2. 用 $ 字符格式化
from string import Template
info = dict(Mcap=Mcap, curr=curr)
print(Template('The market cap of Alibaba is $Mcap mio $curr.').substitute(info))
The market cap of Alibaba is 553789 mio USD.
该方法的
核心范式
是:
在此方法下,我们需要将变量名和变量值作为键和值,创建一个字典。
步骤:
首先要调用
Template
库函数并将句子传给它;
再把字典传入 substitute() 函数;
最后在句子一一对应变量名的地方写出 $k(k 代表字典中的键)。
3. 用 format 函数格式化
print('The market cap of Alibaba is {} mio {}.'.format(Mcap, curr))
The market cap of Alibaba is 553789 mio USD.
该方法的
核心范式
是:
步骤:
首先写句子;
再用 format() 函数,里面列出要被格式化的变量名;
最后在句子一一对应变量名的地方只用写出 {}。
4. 用 f-string 方法格式化
print(f'The market cap of Alibaba is {Mcap} mio {curr}.')
The market cap of Alibaba is 553789 mio USD.
该方法的
核心范式
是:
步骤:
首先写出句子,以
f' '
或
F' '
的形式;
然后在句子只用写出 {v},其中 v 是要被格式的变量。
当决定用哪种格式化时,通常我们评估它是否简单直观而且符合自己的习惯,比如
那些有 C 语言背景的使用者就偏向用 “%” 字符
那些偏好标准化的使用者就偏向用 "$" 字符
那些偏好个性化的使用者就偏向用 format 函数