一、基本語法
.format()方法是Python的字元串格式化輸出的一種方式,通過在字元串中使用佔位符{},然後調用.format()方法,將括弧內的變數插入到佔位符中。例如:
name = "小明" age = 20 text = "大家好,我叫{},今年{}歲。".format(name, age) print(text)
輸出結果為:
大家好,我叫小明,今年20歲。
在這個例子中,我們使用了佔位符{},並且在.format()方法中傳遞了兩個變數name和age,它們分別被插入到了佔位符中。
除了使用{}插入變數外,我們還可以通過{}中的數字指定插入的變數的位置,例如:
name = "小明" age = 20 text = "大家好,我叫{0},今年{1}歲。".format(name, age) print(text)
輸出結果仍為:
大家好,我叫小明,今年20歲。
二、格式控制
.format()方法可以通過冒號:後跟格式控制符號,對插入的變數進行格式化控制,例如:
import math number = math.pi text = "圓周率保留三位小數是{:.3f}".format(number) print(text)
輸出結果為:
圓周率保留三位小數是3.142
在這個例子中,我們使用了:.3f格式控制符號,將插入的變數number保留到小數點後三位。
除了:f表示插入的變數是浮點數外,我們還可以使用其他格式控制符號,例如:
- d – 十進位整數
- x – 十六進位整數(小寫字母)
- X – 十六進位整數(大寫字母)
- b – 二進位整數
- e – 科學計數法表示的浮點數(小寫字母)
- E – 科學計數法表示的浮點數(大寫字母)
例如:
number = 65 text1 = "十進位整數:{0:d}".format(number) text2 = "十六進位整數:{0:x}".format(number) text3 = "二進位整數:{0:b}".format(number) text4 = "科學計數法(小寫字母):{0:e}".format(number) text5 = "科學計數法(大寫字母):{0:E}".format(number) print(text1) print(text2) print(text3) print(text4) print(text5)
輸出結果為:
十進位整數:65 十六進位整數:41 二進位整數:1000001 科學計數法(小寫字母):6.500000e+01 科學計數法(大寫字母):6.500000E+01
三、格式化字元串
Python 3.6及以上版本支持在字元串前使用f標識符,然後在字元串中使用{}插入變數,以實現格式化字元串的快捷方式,例如:
name = "小明" age = 20 text = f"大家好,我叫{name},今年{age}歲。" print(text)
輸出結果與第一個例子相同:
大家好,我叫小明,今年20歲。
這種格式化字元串的方式更加簡潔方便,不用寫.format()方法,也不用擔心佔位符和傳入的變數個數不一致的問題。
四、高級用法
.format()方法還有一些高級用法,比如可以在{}中使用字典鍵值對或對象屬性來指定插入的變數,例如:
person = {'name': '小明', 'age': 20} text = "大家好,我叫{name},今年{age}歲。".format(**person) print(text)
輸出結果仍為:
大家好,我叫小明,今年20歲。
在這個例子中,我們使用了字典person和**運算符,將字典中的鍵值對作為參數傳遞給.format()方法作為插入變數。
同樣的,我們也可以使用對象屬性來指定插入變數,例如:
class Person: def __init__(self, name, age): self.name = name self.age = age person = Person("小明", 20) text = "大家好,我叫{name},今年{age}歲。".format(**person.__dict__) print(text)
輸出結果仍然為:
大家好,我叫小明,今年20歲。
在這個例子中,我們定義了一個Person類,並給該類定義了兩個屬性:name和age,然後我們創建了一個Person類的實例person,最後使用.__dict__方法將person轉換為一個字典,並將字典作為參數傳遞給.format()方法作為插入變數。
五、總結
.format()方法是Python的字元串格式化輸出的一種方式,使用佔位符{}和.format()方法可以將變數插入到佔位符中,並且通過冒號:和格式控制符號可以對插入的變數進行格式化輸出;在Python 3.6及以上版本中,可以使用格式化字元串的快捷方式f”…”,不用寫.format()方法;.format()方法還支持高級用法,可以使用字典鍵值對或對象屬性來指定插入變數。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/301694.html