【硬核干货】2500字全方面解读Python的格式化输出


Python
当中的格式化输出,希望会对大家所有帮助%
占位符的使用我们先来看一下下面的这个例子,
country_ = "France"
currency_ = "Euro"print("%s is the currency of %s" % (currency_, country_))output
Euro is the currency of France
当然我们除了
%s
之外,代表的是字符串,还有%f
代表的是浮点数以及%d
代表的是整数,我们来看下面的这个例子,name = '欣一'
age = 24height = 1.88print('我是:%s, 年龄:%d, 身高:%fm' % (name,age,height))output
我是:欣一, 年龄:24, 身高:1.880000m
我们可以依据保留小数点后面固定的位数,默认的精度为6位,即是小数点后6位,当然我们也可以保留例如
2位小数
,代码如下print('我是:%s, 年龄:%d, 身高:%.2fm' % (name,age,height))
output
我是:欣一, 年龄:24, 身高:1.88m
当然有时候我们指定了字符串的最终长度,但是现有的字符串远远没有那么长,因为我们就需要添加空格的方式来填充,可以填充在左边当然也可以填充在右边,代码如下
## 左填充
display('%10s' % ('欣一'))## 右填充display('%-10s' % ('欣一'))output
' 欣一'
'欣一 'f-string
格式化我们将上面的案例稍稍做一个修改,代码如下
country_ = "France"
currency_ = "Euro"print(f"{currency_} is the currency of {country_}")output
Euro is the currency of France
使用
f-string
格式化的方法好就好在可以直接使用变量名来填充句子当中的内容,当然我们也可以拿它直接来进行数值运算,代码如下print(f'计算结果是:{2*10 + 3*15}')
output
65
或者直接和
Python
当中的内置函数以及lambda
方法联用,代码如下string_test = 'Python is awesome'
print(f'我想说 {string_test.lower()}')output
我想说 python is awesome
以及
a = 100
b = 10print(f'计算的结果是:{(lambda x,y:x+y)(a,b)}')output
计算的结果是:110
format
关键字
format
关键字来格式化输出字符串有多种方式,不指定位置
我们来看一下下面的这个例子,代码如下
print('我是:{}, 年龄:{}, 身高:{}m'.format (name,age,height))
output
我是:欣一, 年龄:24, 身高:1.88m
位置默认开始从0计算,然后对应位置填入数据
指定位置
也可以是指定位置的填入数据,代码如下
print('我是:{0}, 年龄:{1}, 身高:{2}m'.format (name,age,height))
print('我是:{0}, 年龄:{1}, 身高:{1}m'.format (name,age,height))print('我是:{0}, 年龄:{2}, 身高:{1}m'.format (name,age,height))output
我是:欣一, 年龄:24, 身高:1.88m
我是:欣一, 年龄:24, 身高:24m我是:欣一, 年龄:1.88, 身高:24m关键字配对
我们也可以按照关键字配对的方式来进行内容的填充,代码如下
print('我是:{name}, 年龄:{age}, 身高:{height}m'.format(name='欣一', age=25, height=1.88))
output
我是:欣一, 年龄:25, 身高:1.88m
字典参数
当我们数据是以字典的形式来展现的时候,就可以这么来做
dic = {'name':'欣一','age':24,'height':1.88}
print('我是:{name}, 年龄:{age}, 身高:{height}m'.format(**dic))output
我是:欣一, 年龄:24, 身高:1.88m
列表参数
同样的,当我们的数据是以列表的形式来展现的时候,就可以这么来做
foods = ['fish', 'beef', 'fruit']
s = 'i like eat {} and {} and {}'.format(*foods)print(s)output
i like eat fish and beef and fruit
或者是有根据位置来进行填充,代码如下
foods = ['fish', 'beef', 'fruit']
s = 'i like eat {2} and {0} and {1}'.format(*foods)print(s)output
i like eat fruit and fish and beef
精度
有时候我们碰到需要对小数点后面的数字保留几位小数,代码上可以这么来操作
pi = 3.1415926
print("{:.2f}".format(pi)) # 保留两位小数print("{:+.3f}".format(pi)) # 带符号保留3位小数print("{:.2%}".format(pi)) # 百分比保留两位小数output
3.14
+3.142314.16%千分位分隔符
主要是用于货币数据的格式化输出,例如是将“100000”变化成“100,000”,代码如下
print('{:,}'.format(100000000))
output
100,000,000
有时候我们还需要在前面添加上货币符号,代码如下
print('${:,}'.format(100000000))
output
$100,000,000
更多“Python”相关内容
-
Python 2与Python 3的区别
python 是一门对初学者友好的编程语言,是一种多用途的、解释性的和面向对象的高级语言。
-
Python 之父:Python 4.0 可能不会来了
来自:机器之心不要对 Python 4.0 抱有希望,可能不会有的。——Python 之父 Guido van Ross
-
异步 Python 比同步 Python 快在哪里?
作者 | Miguel Grinberg译者 | 张健欣,转自InfoQ你是否听人们说过,异步 Python 代码比“普通(或同
-
Python环境搭建—安利Python小白的Python和Pycharm安装详细教程
在这里我就不一一赘述了,起码到这里我相信大家已经实现了Pycharm的安装了。
-
Python 之父:Python 4.0 可能不会来了
不要对 Python 4.0 抱有希望,可能不会有的。——Python 之父 Guido van Rossum2020
推荐阅读
IT研发▪2021年度十佳创作者