大爽Python入门公开课教案 点击查看教程总目录
虽然之前我写过一篇文章:
python 格式化输出详解(占位符:%、format、f表达式)——上篇 理论篇
其中详细讨论过输入输出,但是讲的过于细致,对于新手来讲过于繁琐,很多地方用不到。
这里做了一定的简化,只针对具体的一部分功能来讲实现方法。
以下均使用占位符实现,
三种占位符%s
、format
、f string
都会展示。
大家掌握自己最熟悉的一种即可,不然容易混乱。
1 按精度输出小数float
比如3.1415
,
>>> pi = 3.1415
保留三位小数输出
>>> "%.3f" % pi
'3.142'
>>> "{:.3f}".format(pi)
'3.142'
>>> f"{pi:.3f}"
'3.142'
保留2位小数输出, 如下
>>> "%.2f" % pi
'3.14'
>>> "{:.2f}".format(pi)
'3.14'
>>> f"{pi:.2f}"
'3.14'
说明
f
是输出浮点数的格式.2
、.3
表示精度,点.
后面接精度format
和f
表达式,此时都要在之前有个冒号:
2 对齐
场景
比如有个学生的成绩信息如下
scores = {
"math": 80,
"history": 70,
"chemistry": 75
}
希望按以下格式输出
math : 80
history : 70
chemistry : 75
%s
实现
代码如下
for course in scores:
score = scores[course]
print("%-10s: %s" %(course, score))
%-10s
10
是设置宽度为10%s
默认右对齐-10
的-
是设置左对齐
format
实现
代码如下
for course in scores:
score = scores[course]
print("{:10s}: {}".format(course, score))
{:10s}
s
是设置输出类型为字符串10
是设置宽度为10format
绝大多数对象默认左对齐(数字对象默认右对齐)。
设置对其方式为
<
: 强制左对齐>
: 强制右对齐^
: 强制居中对齐
使用示例
>>> name = "jack"
>>> "{:<10s}".format(name)
'jack '
>>> "{:^10s}".format(name)
' jack '
>>> "{:>10s}".format(name)
' jack'
f string
实现
代码如下
for course in scores:
score = scores[course]
print(f"{course:10s}: {score}")
f
表达式的里面的设置语法和format
差不多。
>>> name = "jack"
>>> f"{name:<10s}"
'jack '
>>> f"{name:^10s}"
' jack '
>>> f"{name:>10s}"
' jack'
3 填充
对齐时,一般会自动使用空格作为填充,
如果不想用空格,用其他字符填充,语法为:
在:
和对齐符号(此时必须要有对齐符号)之间指定。
注:%s
好像不支持灵活的填充
示例如下
>>> name = "jack"
>>> "{:-<10s}".format(name) # 指定用-来填充
'jack------'
>>> "{:-^10s}".format(name)
'---jack---'
>>> "{:->10s}".format(name)
'------jack'
>>> f"{name:-<10s}"
'jack------'
>>> f"{name:=<10s}" # 指定用=来填充
'jack======'
4 综合
混合使用注意次序:
- 填充设置在
:
和对齐符号之间。 - 精度设置在对其数字之后。
示例如下
>>> pi = 3.1415
>>> "{:0>10.2f}".format(pi)
'0000003.14'
>>> f"{pi:0>10.2f}"
'0000003.14'
:0>10.2f
0
是填充符>
是右对齐(靠右).2f
是精度设置为保留两位小数