python string.format_比较Python的格式化字串—%-formatting,str.format(),f-string

%格式,str格式(Python 2.6 +),f字符串(Python 3.6+)

一,%格式

最初的Python的格式化字串(格式字符串)是用与C语言类似的%-formatting,通过%运算符号,将在元组(元组)中的各个变量按照指定的格式化方式输出。如%s(字串) ),%d(十进位整数),%f(浮点数):

8c7e8864917744e02d11631ad3f9550c.png

但这种输出方式并不适合有很多变量的情况,容易搞错也不易读,如:

我是%s%s。%s

就完全不知道%s个别代表是什么意思,需要配合参数才能知道用途:

41458a29afdaead5f58c0161845c6293.png

二,str.format()

2008年发布的Python 2.6开始有新的格式化字符函数str.format(),通过{}和:来代替运算符号,如我们可以将上面的例子的: %

我是%s%s。%s

用str.format的方式重写为:

我是{first_name} {middle_name}。{姓}

但是,这也会导致接变量后面format会变长:

13968a7a752791e79f386b08363e8796.png

str.format()除了可以指定格式化变量的名称外,也可以透过^(居中),(向右对齐)等方式调整转换样式:

54489c4c2318a271d6ff837d9b2e65a5.png

或采用的方式以逗号分隔数字: {:,}

3ab6e032531dc3a319e3dede57ffd847.png

更多str.format()支持的格式可参考:Python format格式化函数

三,f弦

2016年发布的Python 3.6新增f-string,可以解决%-formatting变量不易阅读以及str.format()接变量后变超长的问题,如上述自介的例子:

“我是{first_name} {middle_name}。{last_name}”。format(

first_name = first_name,

middle_name = middle_name,

last_name = last_name

)

可用的f-string改成如下格式,就可以将之前的变量带入并格式化输出喔!:

f“我是{first_name} {middle_name}。{last_name}”

有木有比较清爽一点?再一个例子比较三个方法的预设性:

62c40b071ac0cdd18d86f297f6e3ddce.png

而且f-string执行速度比str.format(),%s还快呢!但要注意的是f-string不能像%-string,str.format()。 )一样,可以先将模板赋值给变量再格式化输出:

b76f8d32d0cd0ac4393f7055cf84504f.png

以上是%-string,str.format(),f-string的使用方法比较。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>