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

但这种输出方式并不适合有很多变量的情况,容易搞错也不易读,如:
我是%s%s。%s
就完全不知道%s个别代表是什么意思,需要配合参数才能知道用途:

二,str.format()
2008年发布的Python 2.6开始有新的格式化字符函数str.format(),通过{}和:来代替运算符号,如我们可以将上面的例子的: %
我是%s%s。%s
用str.format的方式重写为:
我是{first_name} {middle_name}。{姓}
但是,这也会导致接变量后面format会变长:

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

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

更多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}”
有木有比较清爽一点?再一个例子比较三个方法的预设性:

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

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

被折叠的 条评论
为什么被折叠?



