91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解Python3 中的字符串格式化語法

發布時間:2020-09-18 19:18:51 來源:腳本之家 閱讀:159 作者:mrr 欄目:開發技術

一、舊式的字符串格式化

% 操作符

參考以下示例:

>>> name = "Eric"
>>> "Hello, %s." % name
'Hello, Eric.'

當有多個變量需要插入到字符串中時:

>>> name = "Eric"
>>> age = 74
>>> "Hello, %s. You are %s." % (name, age)
'Hello, Eric. You are 74.'

當需要替換的變量進一步增多時,使用 % 操作符格式化字符串會導致代碼可讀性變得很差:

>>> first_name = "Eric"
>>> last_name = "Idle"
>>> age = 74
>>> profession = "comedian"
>>> affiliation = "Monty Python"
>>> "Hello, %s %s. You are %s. You are a %s. You were a member of %s." % (first_name, last_name, age, profession, affiliation)
'Hello, Eric Idle. You are 74. You are a comedian. You were a member of Monty Python.'

str.format()

str.format() 是對 % 方式的改進,它使用常見的函數調用的語法,并且可以通過定義對象本身的 __format__() 方法控制字符串格式化的具體行為。

基本用法:

>>> name = "Eric"
>>> age = 74
>>> "Hello, {}. You are {}.".format(name, age)
'Hello, Eric. You are 74.'

str.format() 相對于 % 操作符有著更強的靈活性。比如可以通過數字索引來關聯替換到字符串中的變量:

>>> name = "Eric"
>>> age = 74
>>> "Hello, {1}. You are {0}.".format(age, name)
'Hello, Eric. You are 74.'

為了提高代碼可讀性, {} 中也可以使用有具體含義的參數名:

>>> name = "Eric"
>>> age = 74
>>> "Hello, {name}. You are {age}".format(name=name, age=age)
'Hello, Eric. You are 74'

針對字典結構的數據:

>>> person = {'name': 'Eric', 'age': 74}
>>> "Hello, {name}. You are {age}.".format(name=person['name'], age=person['age'])
'Hello, Eric. You are 74.'

或者更簡潔的方式:

>>> person = {'name': 'Eric', 'age': 74}
>>> "Hello, {name}. You are {age}.".format(**person)
'Hello, Eric. You are 74.'

問題在于當需要替換的變量很多時, str.format() 方式依然會導致代碼變得過于冗長:

>>> first_name = "Eric"
>>> last_name = "Idle"
>>> age = 74
>>> profession = "comedian"
>>> affiliation = "Monty Python"
>>> "Hello, {first_name} {last_name}. You are {age}. \
 You are a {profession}. You were a member of {affiliation}."\
 .format(first_name=first_name, last_name=last_name, age=age, \
 profession=profession, affiliation=affiliation)
'Hello, Eric Idle. You are 74. You are a comedian. You were a member of Monty Python.'

二、f-string

基本用法

>>> name = "Eric"
>>> age = 74
>>> f"Hello, {name}. You are {age}."
'Hello, Eric. You are 74.'

嵌入表達式

>>> f"{2 * 37}"
'74'

>>> def to_lowercase(input):
...  return input.lower()
 
>>> name = "Eric Idle"
>>> f"{to_lowercase(name)} is funny"
'eric idle is funny'

>>> f"{name.lower()} is funny"
'eric idle is funny'

f-string 中還可以直接嵌入某個對象實例,只要其內部實現了 __str__ 或者 __repr__ 方法:

class Comedian:
 def __init__(self, first_name, last_name, age):
  self.first_name = first_name
  self.last_name = last_name
  self.age = age

 def __str__(self):
  return f"{self.first_name} {self.last_name} is {self.age}"


new_comedian = Comedian("Eric", "Idle", 74)
print(f"{new_comedian}")
# Eric Idle is 74
多行 f-string
>>> name = "Eric"
>>> profession = "comedian"
>>> affiliation = "Monty Python"
>>> message = (
...  f"Hi {name}. "
...  f"You are a {profession}. "
...  f"You were in {affiliation}."
... )
>>> message
'Hi Eric. You are a comedian. You were in Monty Python.'

總結

以上所述是小編給大家介紹的Python3 中的字符串格式化語法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漾濞| 襄城县| 安康市| 灵璧县| 普陀区| 江陵县| 南昌县| 柯坪县| 广元市| 兴山县| 读书| 邹城市| 贵州省| 高密市| 阜新市| 那坡县| 东乌珠穆沁旗| 贵南县| 平潭县| 金塔县| 曲周县| 泉州市| 岳阳市| 郁南县| 柞水县| 长沙县| 泸定县| 南部县| 钦州市| 尉氏县| 阿城市| 密云县| 合作市| 利辛县| 凤山市| 汝城县| 岱山县| 和田市| 慈利县| 庆阳市| 金寨县|