網頁

2025年7月26日 星期六

Python 數值與字串格式化

 一、主題介紹:

格式化的目的是要將數值或字串轉換為我們想要的格式,並做其他運算、列印、顯示之應用,在 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.       '



二、程式應用:


class Calculate:
    def __init__(self,listNumber):
        self.__floatNumber = listNumber
        self.__length = len(listNumber)

    def getTotal(self):
        sum = 0
        for i in range(0,self.__length,1):
            sum = sum + self.__floatNumber[i]
        return sum
   
    def getMax2Min(self):
        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
   
    def getMin2Max(self):
        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


三、程式說明:

由以上針對數值與字串格式化的介紹與使用說明,可以知道格式化的好處在於讓輸出顯示的資料能整齊、美觀、易讀、符合我們想要的輸出資料的格式,這些在報表列印、資料對齊、數值經度控制..等的實務應用上非常重要。





沒有留言:

張貼留言

TQC+ Python 證照考題評量(五十四) - 平均溫度

 一、主題介紹: 資料庫中的一堆數據資料,時常需要這些資料的平均值、最大值、與最小值,作為分析資料的依據,如能透過寫程式讓它們自動化就能增加效率,就來看看今天的 TQC+ 考題的練習。 (1) 題目 請撰寫一程式,讓使用者輸入四週各三天的溫度,接著計算並輸出這四週的平均溫度及最高...