程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python字符串格式化輸出語法匯總

編輯:Python

1. 引言

在程序設計中,對於字符串的處理是個免不了的工作。對於字符串的常見操作,Python內置了各種不同的工具,本篇要討論的是關於Python中字串格式化輸出的各種語法。

2. 舊式語法

在Python中最早的方式是使用符號%來設定格式化字符串。例如下面的方式:

person = 'Sean'
print("My name is %s" %person)

舊式的語法使用%符號來告訴Python編譯器此處需要替換成字符串。並且到下一個%符號處找到變量person,並且將變量person的值帶入第一個%符號中。

大家可以發現第一個%符號後面跟著一個s字母。這個字母代表的是字符串類型。下面列出其他可以轉換的類型:

3. 新式語法–format

這裡的新舊式語法的區分,是以Python 3作為劃分的時間點。Python 3中引進了這種新式的語法。新式語法丟掉了原先的%符號,改用format()方法在字串中插入變量,使用時需要搭配花括號進行標識。

比如說有一個字串My name is xxx.並且希望將變量person的值插入字符串,替換裡面的xxx,我們可以使用下面的方式表示:

person = 'Sean'
print("My name is {}".format(person))

可以看到花括號{ }取代了xxx,而.format(person)可以將person變量的值插入到花括號中。

在舊式的語法中我們需要依照字串中的%符號所在的順序依次來輸出不同類型變量的值,但是在新的語法中則無此限制,我們可以指定順序。如下所示:

a = 'Sean'
b = 'John'
c = 'Luis'
print("{},{} and {} are my friends.".format(a, b, c))

上述代碼使用的是位置參數。其中花括號{ }的順序代表的是.format()方法中參數值的順序。第一個為a、第二個為b,依此類推。同時,我們可以利用編號參數來設定替換字段,進而用以改變順序,如下:

a = 'Sean'
b = 'John'
c = 'Luis'
print("{2},{1} and {0} are my friends.".format(a, c, b))
# John,Luis and Sean are my friends.

4. 新式語法的缺點

整體來說,使用format()格式化字符串的語法比舊式的語法強大,使用起來相當方便,Python3也推薦大家使用這個方式。

然而這種格式化方式也不是沒有缺點。比如說,當format()需要處理多個參數或者是更長的字符串時,整個代碼會顯得過於冗長。如下是一個簡單的例子:

first_name = 'John'
last_name='Snow'
city = 'Winterfell'
print("Hi, My name is {} {}. I am from {} ".format(first_name, last_name,city ))

因此,Python 3.6對此做了一些改變。

5. Python3.6以後:f-string

從Python 3.6之後,開始使用f-strings作為字串格式化的方式。f-strings又稱為·string interpolation·。

例如,上面的代碼可以改用f-strings表示如下:

person = 'Sean'
print(f"My name is {person}")
# My name is Sean

f-String在使用上較format()簡便,其開頭是f,接著花括號{ }裡面放入參數名稱,整個輸出字符串則使用雙引號“ ”標識。

這種新的作法讓我們得以把Python表達式直接嵌入在字串中。你可以嵌入各種表達式,比如直接從字符串裡面計算結果。

x =10
y = 3
print(f" {x} 加 {y} 等於 {x+y} ")
# 10 加 3 等於 13

Python編譯器會把f-string轉換成一連串的字符串和表達式,進而組合成為最終的字符串輸出。

6. 總結

字符串格式化輸出可以增加程序的可讀性,也可以降低程序的出錯機率,提高維護的便利性。
最後,如果大家在開發中使用的是Python3.6以前的版本,建議使用.format()進行字串的格式化;如果是Python3.6以後的版本,則建議可以使用f-string語法。

您學廢了嘛?


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved