大爽Python入門教程 5-2 格式化輸出
阿新 • • 發佈:2021-11-23
大爽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
是精度設定為保留兩位小數