python print 用法

Deuterium_suika發表於2019-03-22

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
複製程式碼

相關文章