.format是Python中常用的字符串格式化方法,它可以將變量插入到字符串中,從而生成新的字符串。在Python3中,.format已經(jīng)成為了最主流的字符串格式化方法,取代了早期的%格式化方法。.format方法的基本用法如下:
`python
_x000D_print("My name is {}, I am {} years old.".format("Tom", 25))
_x000D_ _x000D_這段代碼輸出的結(jié)果是:
_x000D_ _x000D_My name is Tom, I am 25 years old.
_x000D_ _x000D_在這個(gè)例子中,我們使用.format方法將兩個(gè)變量插入到字符串中。在字符串中,我們使用一對(duì)大括號(hào){}來(lái)表示一個(gè)占位符,然后在.format方法中傳入對(duì)應(yīng)的變量。在.format方法中,傳入的變量會(huì)按照順序依次替換字符串中的占位符。
_x000D_.format方法還支持更多的高級(jí)用法,下面我們將逐一介紹。
_x000D_按順序傳入變量
_x000D_在上面的例子中,我們是按照順序依次傳入變量的。如果我們想要傳入的變量不按照順序,可以使用大括號(hào)中的數(shù)字來(lái)指定占位符的位置,如下所示:
_x000D_`python
_x000D_print("My name is {1}, I am {0} years old.".format(25, "Tom"))
_x000D_ _x000D_這段代碼輸出的結(jié)果和之前的例子一樣:
_x000D_ _x000D_My name is Tom, I am 25 years old.
_x000D_ _x000D_在這個(gè)例子中,我們使用了大括號(hào)中的數(shù)字來(lái)指定占位符的位置,數(shù)字從0開(kāi)始計(jì)數(shù)。
_x000D_按名稱(chēng)傳入變量
_x000D_除了按順序傳入變量,.format方法還支持按名稱(chēng)傳入變量。在字符串中,我們可以使用一對(duì)大括號(hào){}來(lái)表示一個(gè)占位符,然后在大括號(hào)中加上變量的名稱(chēng),如下所示:
_x000D_`python
_x000D_print("My name is {name}, I am {age} years old.".format(name="Tom", age=25))
_x000D_ _x000D_這段代碼輸出的結(jié)果和之前的例子一樣:
_x000D_ _x000D_My name is Tom, I am 25 years old.
_x000D_ _x000D_在這個(gè)例子中,我們使用了大括號(hào)中的變量名稱(chēng)來(lái)指定占位符的位置。在.format方法中,我們可以按照名稱(chēng)傳入變量,變量的名稱(chēng)需要和字符串中的占位符名稱(chēng)一致。
_x000D_使用變量的屬性和方法
_x000D_在.format方法中,我們可以使用變量的屬性和方法來(lái)格式化字符串。例如,我們可以使用字符串的.upper()方法將字符串轉(zhuǎn)換為大寫(xiě)字母,如下所示:
_x000D_`python
_x000D_name = "Tom"
_x000D_print("My name is {}.".format(name.upper()))
_x000D_ _x000D_這段代碼輸出的結(jié)果是:
_x000D_ _x000D_My name is TOM.
_x000D_ _x000D_在這個(gè)例子中,我們使用了字符串的.upper()方法將字符串轉(zhuǎn)換為大寫(xiě)字母,然后將其作為變量傳入到.format方法中。
_x000D_使用特定格式的變量
_x000D_在.format方法中,我們可以使用特定格式的變量來(lái)格式化字符串。例如,我們可以使用{:d}來(lái)表示整數(shù),使用{:f}來(lái)表示浮點(diǎn)數(shù),使用{:s}來(lái)表示字符串,如下所示:
_x000D_`python
_x000D_age = 25
_x000D_height = 1.75
_x000D_name = "Tom"
_x000D_print("My name is {0:s}, I am {1:d} years old and {2:.2f} meters tall.".format(name, age, height))
_x000D_ _x000D_這段代碼輸出的結(jié)果是:
_x000D_ _x000D_My name is Tom, I am 25 years old and 1.75 meters tall.
_x000D_ _x000D_在這個(gè)例子中,我們使用了{(lán):s}來(lái)表示字符串,{:d}來(lái)表示整數(shù),{:f}來(lái)表示浮點(diǎn)數(shù),并使用:.2f來(lái)表示保留兩位小數(shù)。
_x000D_問(wèn)答擴(kuò)展
_x000D_1. .format方法和%格式化方法有什么區(qū)別?
_x000D_.format方法和%格式化方法都可以用來(lái)格式化字符串,但是.format方法更加靈活、易讀、易用。.format方法支持按順序傳入變量、按名稱(chēng)傳入變量、使用變量的屬性和方法、使用特定格式的變量等高級(jí)用法,而%格式化方法只支持按順序傳入變量和使用特定格式的變量。
_x000D_2. .format方法中的占位符可以使用多次嗎?
_x000D_可以使用。在.format方法中,我們可以使用相同的占位符多次,例如:
_x000D_`python
_x000D_print("{0} {1} {0}".format("hello", "world"))
_x000D_ _x000D_這段代碼輸出的結(jié)果是:
_x000D_ _x000D_hello world hello
_x000D_ _x000D_在這個(gè)例子中,我們使用了{(lán)0}和{1}兩個(gè)占位符,其中{0}被使用了兩次。
_x000D_3. .format方法和f-string有什么區(qū)別?
_x000D_f-string是Python 3.6引入的一種字符串格式化方法,它使用一對(duì)大括號(hào){}來(lái)表示一個(gè)占位符,并在大括號(hào)中加上變量的名稱(chēng)或表達(dá)式。f-string相比于.format方法,更加簡(jiǎn)潔、易讀、易用,但是只能在Python 3.6及以上版本中使用。例如:
_x000D_`python
_x000D_name = "Tom"
_x000D_age = 25
_x000D_print(f"My name is {name}, I am {age} years old.")
_x000D_ _x000D_這段代碼輸出的結(jié)果和之前的例子一樣:
_x000D_ _x000D_My name is Tom, I am 25 years old.
_x000D_ _x000D_在這個(gè)例子中,我們使用了f-string將變量插入到字符串中。f-string中的變量可以直接在大括號(hào)中使用,不需要在.format方法中傳入變量。
_x000D_