一、主題介紹:
格式化的目的是要將數值或字串轉換為我們想要的格式,並做其他運算、列印、顯示之應用,在 Python 語言中可以使用 format() 這個內建函式來將數值與字串格式化,根據函式括弧內不同的參數的設定,就可以格式化回傳我們想要的任何格式資料,接下來看看它的作法有哪些。
(1) 整數格式化
#共有8位字元寬度,靠左對齊
>>>format(168,"<8")
'168 '
#共有8位字元寬度,靠右對齊
>>>format(168,">8")
' 168'
#共有8位字元寬度,置中對齊
>>>format(168,"^8")
' 168 '
#共有8位字元寬度,置中對齊,空格不分以 # 填滿
>>>format(168,"#^8")
'##168###'
#加上千位逗號
>>>format(123456789,",")
'123,456,789'
(2) 浮點數格式化
#共有8位字元寬度,小數點2位數
>>>format(1688,"8.2f")
' 1688.00'
(3)字串格式化
#共有30位字元寬度,預設靠左對齊
>>>format("You are the best.","30")
'You are the best. '
#共有30位字元寬度,並靠右對齊
>>>format("You are the best.",">30")
' You are the best.'
#共有30位字元寬度,並置中對齊
>>>format("You are the best.","^30")
' You are the best. '
二、程式應用:
def __init__(self,listNumber):
self.__floatNumber = listNumber
self.__length = len(listNumber)
sum = 0
for i in range(0,self.__length,1):
sum = sum + self.__floatNumber[i]
return sum
num = self.__floatNumber
quit = 0
while quit==0:
quit = 1
for j in range(0,self.__length-1,1):
if num[j] < num[j+1] :
temp = num[j]
num[j] = num[j+1]
num[j+1] = temp
quit = 0
return num
num = self.__floatNumber
quit = 0
while quit==0:
quit = 1
for k in range(0,self.__length-1,1):
if num[k] > num[k+1] :
temp = num[k]
num[k] = num[k+1]
num[k+1] = temp
quit = 0
return num
def conversion(self,listdata,ref):
for i in range(0,self.__length,1):
listdata[i] = format(float(listdata[i]),ref)
return listdata
listdata = [23,84.5,16.71,60,90.2]
A = Calculate(listdata)
print("原串列資料= \n",listdata)
print("原串列資料的總和,且格式化3位整數及3位小數= \n",
format(A.getTotal(),"6.3f"))
print("原串列資料排列由大到小,且格式化7位數及3位小數並靠左對齊= \n",
A.conversion(A.getMax2Min(),"<7.3f"))
print("原串列資料排列由小到大,且格式化10位數字及4位小數並靠右對齊= \n",
A.conversion(A.getMin2Max(),">10.4f"))
print("原串列資料排列由小到大垂直小數點對其排列,且格式化20位數及5位小數並靠右對齊= ")
B = A.conversion(A.getMin2Max(),">20.5f")
for i in range(0,len(B)):
print(B[i])
#執行結果 ...
原串列資料=
[23, 84.5, 16.71, 60, 90.2]
原串列資料的總和,且格式化3位整數及3位小數=
274.410
原串列資料排列由大到小,且格式化7位數及3位小數並靠左對齊=
['90.200 ', '84.500 ', '60.000 ', '23.000 ', '16.710 ']
原串列資料排列由小到大,且格式化10位數字及4位小數並靠右對齊=
[' 16.7100', ' 23.0000', ' 60.0000', ' 84.5000', ' 90.2000']
原串列資料排列由小到大垂直小數點對其排列,且格式化20位數及5位小數並靠右對齊=
16.71000
23.00000
60.00000
84.50000
90.20000
三、程式說明:
由以上針對數值與字串格式化的介紹與使用說明,可以知道格式化的好處在於讓輸出顯示的資料能整齊、美觀、易讀、符合我們想要的輸出資料的格式,這些在報表列印、資料對齊、數值經度控制..等的實務應用上非常重要。