社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

【Python】全方面解读Python的格式化输出

机器学习初学者 • 3 年前 • 275 次点击  
今天来和大家聊聊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 = 24
height = 1.88

print('我是:%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 = 10
print(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.142
314.16%

千分位分隔符

主要是用于货币数据的格式化输出,例如是将“100000”变化成“100,000”,代码如下



    
print('{:,}'.format(100000000))

output

100,000,000

有时候我们还需要在前面添加上货币符号,代码如下

print('${:,}'.format(100000000))

output

$100,000,000
往期精彩 回顾




站qq群955171419,加入微信群请扫码:
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/125309
 
275 次点击