1. 程式人生 > >05 python基礎--格式化輸出

05 python基礎--格式化輸出

5.1 整數的進位制輸出

print('%s'%'hello world')
>hello world
print('%o'%20)       # 八進位制輸出
>24
print('%d'%20)       # 十進位制輸出
>20
print('%x'%20)       # 十六進位制輸出
>14
      

5.2 浮點數輸出

print('%.3f' % 3.1415926)  # 保留3位小數位
>3.142
print('%.3e' % 3.1415926)  # 保留3位小數位,使用科學計數法,且指數輸出
>3.142e+00
print('%.3g' % 3.1415926)  # 保留3位有效數字
>3.14
## round(x,n)函式四捨五入
print(round(1.1135,3))  # 取3位小數,由於3為奇數,則向下“舍”
>1.13
print(round(1.1145,3))  # 取3位小數,由於4為偶數,則向上“入”
>1.15

5.3 字串輸出

print('%20s' % 'hello world') #右對齊,取20位,不夠則補位
>         hello world
print('%20s' % 'hello world') #左對齊,取20位,不夠則補位
>hello world  
print('%-10.2s' % 'hello world')  # 左對齊,10位佔位符,取2位
>he        
print('%10.2s' % 'hello world')  # 右對齊,10位佔位符,取2位
>        he
print('%.2s' % 'hello world')  # 左對齊,10位佔位符,取2位
>he 

5.4 format

 ## 基本用法:使用大括號‘{}’作為特殊字元代替‘%’,使用方法由兩種:b.format(a)和format(a,b)

print('{} {}'.format('hello','world')) # 不帶欄位
>hello world
print('{1} {0}'.format('hello','world')) # 帶數字編號,可調換順序
>world hello
print('{a} {b} {a}'.format(a='hello',b='world')) # 帶數字編號,可調換順序
>hello world hello

## 進階用法:(1)< (預設)左對齊、> 右對齊、^ 中間對齊、= (只用於數字)在小數點後進行補齊;(2)取位數“{:4s}”、"{:.2f}"等
print("{:=>30,.2f}".format(12345.6789))
>>=====================12,345.68


<填充> <對齊> <寬度> <,> < . 精度> <型別>
引導符號 用於填充的單個字元 < 左對齊 寬度 千位分隔符 浮點數小數精度或字串最大輸出長度 整數型別(b, c, d, o, x, X)浮點數型別(e, E, f, %)

print('{0:b}'.format(3))   ##二進位制輸出
print('{:c}'.format(80))   ##轉化為unicode字串
print('{:d}'.format(20))   ##十進位制輸出
print('{:o}'.format(20))   ##八進位制輸出
print('{:x}'.format(20))   ##十六進位制輸出
print('{:e}'.format(20))   ##冪符號輸出
print('{:%}'.format(20))   ##%輸出
print('轉化為華氏溫度為{:.2f}F'.format(54))    ##帶固定內容(F)的輸出格式
>11
>P

>20

>24

>14

>2.000000e+01

>2000.000000%

>轉化為華氏溫度為54.00F

5.5 溫度轉換程式碼

T = input('請輸入帶單位的溫度(t/f):')
if   T[-1] in ['f','F']:
    C = (eval(T[0:-1])-32)/1.8                         ## eval() 函式轉化字串為其他格式,即去掉引號
    print("轉化為攝氏溫度為{:.2f}C".format(C))          ## 格式化輸出
elif T[-1] in ['c','C']:
    F =1.8*eval(T[0:-1]) +32
    print("轉化為華氏溫度為ty{:.2f}F".format(F))
else:
    print('您的輸入有誤')