相当实用的Python格式化字符串

格式化字符串(string formatting)是以指定输出参数格式相对位置来“美化”字符串。输出参数格式包括数字的小数点位数、字符串大小写等,相对位置标注出被格式化的词是在句中的位置。比如:

print('It costs %.2f.' %(123.456))
It costs 123.46.

其中 %.2f 是 123.456 的输出参数格式,.2f 代表保留小数点两位,而 %.2f 所在的位置在 costs 后面,意思说将 123.456 变成 123.46 后插在 costs 后面。

格式化字符串有四种方法:

  1. 用 % 字符 (上面用的)
  2. 用 $ 字符
  3. 用 format() 函数
  4. 用 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.

该方法的核心范式是:

 

步骤:

  1. 首先写句子;
  2. 再用 % 加小括号,里面列出要被格式化的变量名;
  3. 最后在句子一一对应变量名的地方写出 %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.

该方法的核心范式是:

 

在此方法下,我们需要将变量名和变量值作为键和值,创建一个字典。

步骤:

  1. 首先要调用 Template 库函数并将句子传给它;
  2. 再把字典传入 substitute() 函数;
  3. 最后在句子一一对应变量名的地方写出 $k(k 代表字典中的键)。

3. 用 format 函数格式化

print('The market cap of Alibaba is {} mio {}.'.format(Mcap, curr))
The market cap of Alibaba is 553789 mio USD.

该方法的核心范式是:

 

步骤:

  1. 首先写句子;
  2. 再用 format() 函数,里面列出要被格式化的变量名;
  3. 最后在句子一一对应变量名的地方只用写出 {}。

4. 用 f-string 方法格式化

print(f'The market cap of Alibaba is {Mcap} mio {curr}.')
The market cap of Alibaba is 553789 mio USD.

该方法的核心范式是:

步骤:

  1. 首先写出句子,以 f'   ' 或 F'   ' 的形式;
  2. 然后在句子只用写出 {v},其中 v 是要被格式的变量。

 

当决定用哪种格式化时,通常我们评估它是否简单直观而且符合自己的习惯,比如

  • 那些有 C 语言背景的使用者就偏向用 “%” 字符
  • 那些偏好标准化的使用者就偏向用 "$" 字符
  • 那些偏好个性化的使用者就偏向用 format 函数

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值