脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python格式化输出详情

Python格式化输出详情

2022-01-08 00:12CPA657499934 Python

这篇文章介绍了Python格式化输出,主要讲解Python格式化输出的三种方式:%格式化、format格式化、f-String格式化,需要的朋友可以参考下面文章的具体内容

1.%格式化

语法:

%[(name)][flags][width].[precision]typecode

参数:

(name) 可选,用于选择指定的key
flags 可选,对齐方式,可选值为:
+表示右对齐
-表示左对齐。
' '为一个空格,表示在正数的左侧填充一个空格,负数前面加负号。
0 右对齐,正数前面无符号,负数前面加负号,用0填充空白
width 可选 表示显示宽度
.precision 可选 表示小数点后位数
typecode 必选 ,可以选择的参数为:
s 表示字符串
d 表示整数
f 表示浮点数

1.1简单格式化,不使用可选参数

?
1
2
print('%s的资产总额为%f元'%('A公司',156261595.89))
print('%s的资产总额为%d元'%('A公司',156261595.89))

执行结果:

A公司的资产总额为156261595.890000元
A公司的资产总额为156261595元

1.2 复杂格式化,使用可选参数

1.2.1参数 (name),用于选择指定的key

?
1
2
d = {'name':'A公司', 'assets':156261595.89}
print("公司名称%(name)s,资产总额为%(assets)f元。" %d)

执行结果:

公司名称A公司,资产总额为156261595.890000元。

1.2.2参数flags和width,对齐方式和宽度

?
1
2
d = {'name':'A公司', 'assets':156261595.89}
print("公司名称%(name)+6s,资产总额为%(assets)-20f元。" %d)

执行结果:

公司名称   A公司,资产总额为156261595.890000    元。

1.2.3参数.precision 控制小数点后位数

?
1
2
d = {'name':'A公司', 'assets':156261595.89345}
print("公司名称%(name)+4s,资产总额为%(assets).2f元。" %d)

执行结果:

公司名称 A公司,资产总额为156261595.89元。

2.format格式化

格式化字符串的函数 str.format(),基本语法是通过 {} : 来实现格式化,代替%格式化方法,format函数可以接受不限个参数,位置可以不按顺序。

主要参数释义:
[填充] : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充
[对齐方式与宽度] ^, <, > 分别是居中、左对齐、右对齐,后面带宽度
[正负数显示] + 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格
[数据类型] s 表示字符串 d 表示整数 f 表示浮点数

2.1自定义占位符

?
1
2
3
# 自定义占位符
s = '{0}的资产总额为{1}元'
print(s.format('A公司','156261595.89'))

执行结果:

A公司的资产总额为156261595.89元

2.2自定义关键字

?
1
2
3
# 自定义关键字
s = '{name}的资产总额为{资产}元'
print(s.format(name='A公司',资产='156261595.89'))

执行结果:

A公司的资产总额为156261595.89元

2.3填充与对齐(同时使用)

?
1
2
3
4
5
# 填充与对齐(同时使用)
# :号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充
# ^, <, > 分别是居中、左对齐、右对齐,后面带宽度,
s = '{name}的资产总额为{资产:*>20}元'
print(s.format(name='A公司',资产=156261595.89))

执行结果:

A公司的资产总额为********156261595.89元

2.4数字格式化

?
1
2
3
# 浮点型,保留两位小数
s = '{name}的资产总额为{资产:.2f}元'
print(s.format(name='A公司',资产=156261595.8988))

执行结果:

A公司的资产总额为156261595.90元

?
1
2
3
# 浮点型,保留两位小数,并使用千分位分隔符
s = '{name}的资产总额为{资产:,.2f}元'
print(s.format(name='A公司',资产=156261595))

执行结果:

A公司的资产总额为156,261,595.00元

?
1
2
3
# 浮点型,保留两位小数,并使用千分位分隔符,表示在正数前显示+,负数前显示-
s = '{name}的资产总额为{资产:+,.2f}元'
print(s.format(name='A公司',资产=156261595))

执行结果:

A公司的资产总额为+156,261,595.00元

?
1
2
3
# 百分比,保留两位小数
s = '{name}的资产负债率为{资产负债率:.2%}'
print(s.format(name='A公司',资产负债率=0.8544))

执行结果:

A公司的资产负债率为85.44%

3.f-String格式化

Python格式化字符串f-string,采用f'{content:format}' 设置字符串格式,其中 content 是替换并填入字符串的内容,可以是变量、表达式或函数等。采用默认格式时不必指定 {:format},只写 {content} 即可。

3.1简单使用

?
1
2
3
4
5
# 简单使用
name = 'A公司'
assets = 156261595
msg = f'{name}的资产总额为{assets}元。'
print(msg)

执行结果:

A公司的资产总额为156261595元。

3.2复杂控制

?
1
2
3
4
5
# {content:format} 格式化使用
name = 'A公司'
assets = 156261595
msg = f'{name}的资产总额为{assets:,.2f}元。'
print(msg)

执行结果:

A公司的资产总额为156,261,595.00元。

注释:填充与对齐以及对数值的处理,与format函数格式化类似,参照format部分的讲解。

到此这篇关于Python格式化输出详情的文章就介绍到这了,更多相关Python格式化输出 内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.51cto.com/shenjiren/3947072

延伸 · 阅读

精彩推荐