在 Python 中若要要求字串輸出格式時就必須使用字串的格式化,其方法有兩種:
一種是以 % 來完成,
另一種則是以 format 的方式來完成格式化的目的。
print("%s %s" % ("Hello","world!!" )) 或 print('{} {}'.format('Hello', 'world!!')) #新的寫法
%s 代表 字串,{} 亦表示字串,
在{} 中可加入數字,可指定輸出的字串
上例中若寫成 print(‘{1} {0}’.format(‘Hello’, ‘world!!’)) ,
會輸出 world!! Hello
在 {} 內可以指定資料的類型,字串可用 {:s}。
若為數字則用 {:d}, 或是上例中另一種格式化的做法:
print(" %d" % (9*6)) print('{:d}'.format(9*6)) #新的寫法
這個例子,在 99乘法表中用過,%d 表示十進位的整數。
至於浮點數則用 %f 操作:
print('%f' % (3.14159)) print('{:f}'.format(3.14159)) #新的寫法
還有一種做法是控制浮點數的長度,若長度不足則會在前面補上 0:
print('%08.4f' % (3.14159)) print('{:06.4f}'.format(3.14159)) #新的寫法 #顯示 003.1416
print('{:04d}'.format(3.14159)) #顯示 0003
上例中的 8 指的是字串的長度 4 指的是小數的長度,0 指的是長度不足 8則補 0,若寫成 8.4f,不足 8 位,則左邊留空。
還有幾種是新的寫法才有的功能,像是
print('{:=5d}'.format((- 23))
#顯示 - 23 , 負號與 23 中間空兩格,共5格
日期的部份,則是以下的寫法
from datetime import datetime
print('{:%Y-%m-%d %H:%M}'.format(datetime(2019, 3, 29, 5, 30)))
#顯示 2019-03-29 05:30
還有許多的格式,可參考 https://pyformat.info/