###### tags: `chapter 4` `Python` # 4-1 格式化輸出 # 在前幾章的內容裡已經使用到不少的`print()`函數了,這裡將介紹`print()`函數的格式化功能,其概念和C語言的`printf()`類似,可以先定義好你想輸出的資料排版,最後再將變數填進對應的位置,以下是幾個範例。 ```python= number = 2 score = 90 print("座號%d,分數為%d分" % (number, score)) # 座號2,分數為90分 ``` ```python= temp = 37.654 print("今天的氣溫是%f度" % (temp)) # 今天的氣溫是37.654000度 ``` 這兩個例子裡面出現每一個的`%d`、`%f`都代表著輸出的時候會填入一個變數,而這個變數的值則在整個字串的後方會填入,這種先定義好輸出格式,再將變數填入特定位置的方法,非常利於排版,例如在製作學生成績單的時候,我們就可以這樣子定義↓。 ```python= name = "Jack" math = 100 english = 90 chinese = 80 print("%s 同學的數學是 %d 分,英文是 %d 分,中文是 %d 分" % (name, math, english, chinese)) # Jack 同學的數學是 100 分,英文是 90 分,中文是 80 分 ``` ![](https://i.imgur.com/oPdUiuT.png) 大家應該可以發現,對應不同型別的變數,我們要用不同的英文字母去做格式化輸出,這個非常值觀,畢竟你不會拿一根榔頭去鎖螺絲釘嘛! | 變數型態 | 對應字母 | | -------- | -------- | | 字串 | %s | | 整數 | %d | | 浮點數 | %f | | 整數(16 base) | %x | ![](https://i.imgur.com/jlYlvlH.png) ## `format()`函數 ## `format()`函數是針對字串做處理的函式,與上面的針對`print()`函式的操作不太一樣,其功能式將字串裡的`{}`依序替換自己指定的變數,且可以填數整數、浮點數等非字串變數,不會受限於`%`符號。 ```python= score = 90 name = "John" weight = 60.3 information = "他是{},體重有{}公斤,這次考試拿了{}分。" print(information.format(name , weight , score)) # 他是John,體重有60.3公斤,這次考試拿了90分。 ``` ```python= name = "Louis" print("大家好呀!我的名字叫做{}".format(name)) # 大家好呀!我的名字叫做Louis ``` ![](https://i.imgur.com/oPdUiuT.png) `format()`是字串型別的內建函數,因此每個字串都可以使用`format()`,只要在變數名稱後面加上`.format()`即可! ![](https://i.imgur.com/jlYlvlH.png)