1.print格式化輸出
python的格式化輸出與c語言中的printf相似
%[(name)][flags][width].[precision]typecode
width, precision為兩個整數。可以利用*,來動態代入這兩個量
print("%.*f" % (3, 1.265633))
1.266
複製程式碼
3替換掉* 實際上為"%.3f"
%s 字串
%r 字串
%c 單個字元
%b 二進位制整數
%d 十進位制整數
%i 十進位制整數
%o 八進位制整數
%x 十六進位制整數
%e 指數 (基底為小寫e)
%E 指數 (基底寫為大寫E)
%f 浮點數
%F 浮點數,與上相同
%g 指數(e)或浮點數 (根據顯示長度)
%G 指數(E)或浮點數 (根據顯示長度)
print('%s' % 'hello world')
print('%50s'% 'hello world') # 取50位
print('%.4f' % 3.1415926) # 取4位小數
hello world
hello world
3.1416
複製程式碼
2.format()
該函式把字串當成一個模板,通過傳入的引數進行格式化,並且使用大括號‘{}’作為特殊字元代替‘%’
(1)不帶編號,“{}”
(2)帶數字編號,可調換順序,“{1}”、“{2}”
(3)帶關鍵字,即“{a}”、“{b}”
>>>print('{} {}'.format('deuterium', 'suika'))
deuterium suika
print('{0} {1}'.format('deuterium', 'suika')) # 帶數字編號
deuterium suika
print('{0} {1} {0}'.format('deuterium', 'suika')) # 打亂順序
deuterium suika deuterium
print('{1} {1} {0}'.format('deuterium', 'suika'))
suika suika deuterium
print('{a} {b} {a}'.format(a='deuterium', b='suika')) # 帶關鍵字
deuterium suika deuterium
print('{2} {1} {2}'.format('deuterium', 'suika'))
會出現tuple index out of range報錯
數字形式的簡單欄位名相當於把 format 中的所有位置引數整體當作一個元組,通過欄位名中的數字進行取值。
即 {0} 等價於 tuple[0],所以花括號內的數字不能越界。
如果改為print('{2} {1} {2}'.format('deuterium', 'suika', 'doudou'))
則輸出doudou suika doudou
複製程式碼