1. 程式人生 > >Python中的格式化字串

Python中的格式化字串

在許多程式語言中都包含有格式化字串的功能,比如C和Fortran語言中的格式化輸入輸出。Python中內建有對字串進行格式化的操作%

模板

格式化字串時,Python使用一個字串作為模板。模板中有格式符,這些格式符為真實值預留位置,並說明真實數值應該呈現的格式。Python用一個tuple將多個值傳遞給模板,每個值對應一個格式符。

比如下面的例子:

print("I'm %s. I'm %d year old" % ('Vamei', 99))

上面的例子中,

"I'm %s. I'm %d year old" 為我們的模板。%s為第一個格式符,表示一個字串。%d為第二個格式符,表示一個整數。('Vamei', 99)

的兩個元素'Vamei'99為替換%s%d的真實值。 
在模板和tuple之間,有一個%號分隔,它代表了格式化操作

整個"I'm %s. I'm %d year old" % ('Vamei', 99) 實際上構成一個字串表示式。我們可以像一個正常的字串那樣,將它賦值給某個變數。比如:

a = "I'm %s. I'm %d year old" % ('Vamei', 99)
print(a)

我們還可以用詞典來傳遞真實值。如下:

print("I'm %(name)s. I'm %(age)d year old" % {'name':'Vamei', 'age':99})

可以看到,我們對兩個格式符進行了命名

。命名使用()括起來。每個命名對應詞典的一個key。

格式符

格式符為真實值預留位置,並控制顯示的格式。格式符可以包含有一個型別碼,用以控制顯示的型別,如下:

%s    字串 (採用str()的顯示)

%r    字串 (採用repr()的顯示)

%c    單個字元

%b    二進位制整數

%d    十進位制整數

%i    十進位制整數

%o    八進位制整數

%x    十六進位制整數

%e    指數 (基底寫為e)

%E    指數 (基底寫為E)

%f    浮點數

%F    浮點數,與上相同

%g    指數(e)或浮點數 (根據顯示長度)

%G    指數(E)或浮點數 (根據顯示長度)

%%    字元"%"

可以用如下的方式,對格式進行進一步的控制:

%[(name)][flags][width].[precision]typecode

(name)命名

flags可以有+,-,' '或0。+表示右對齊。-表示左對齊。' '為一個空格,表示在正數的左側填充一個空格,從而與負數對齊。0表示使用0填充

width表示顯示寬度

precision表示小數點後精度

比如:

print("%+10x" % 10)
print("%04d" % 5)
print("%6.3f" % 2.3)

上面的width, precision為兩個整數。我們可以利用*,來動態代入這兩個量。比如:

print("%.*f" % (4, 1.2))

Python實際上用4來替換*。所以實際的模板為"%.4f"。

總結

Python中內建的%操作符可用於格式化字串操作,控制字串的呈現格式。Python中還有其他的格式化字串的方式,但%操作符的使用是最方便的。

相關推薦

Python字串格式化

name = "zhangsna" print("my name is " + name) print("my name is %s" % name) age = 12 score = 87.6 print("我叫%s,今年%d歲,我考了%.1f分" % (name, age, sc

python 字串轉義序列、字串格式化、操作符、關鍵字總結

1.字串轉義序列 轉義字元 描述 \(在行尾時) 續行符 \\ 反斜槓符號 \' 單引號 \" 雙引號 \a 響鈴 \b

python字串(str)操作

字串是python中資料型別。一般就單引號(‘’)或雙引號(“”)引起來的內容就是字串。 例如:下面兩個都是定義字串 str1 = "hello world" str2 = 'Hello World'  1、索引:就是下標,從0開始。預設是從左往右數;當索引為負數時,表示從右往左數。通過索引得

解決python因為字串編碼導致的錯誤

python程式設計例項: 1. 將抓取的網站資料,儲存到excel表格中,在sheet.write()函式時,報錯如下: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not

Python去除字串空格的方法

Python中去除字串中指定字元或者空格的方法有幾種: str.strip() //該方法用於去除字串開頭和結尾的指定字元或字串(預設為空格或換行符) str.lstrip() //該方法用於截掉字串左邊的空格或指定字元 str.rstrip() //該方法用於截掉字串右邊的空格或指定字元

[詳解]Python字串的strip(),lstrip(),rstrip()的含義

轉自:【詳解】python中字串的strip(),lstrip(),rstrip()的含義 【問】 Hi Crifan, 我在http://bbs.csdn.net/topics/390361293 裡看到抓取網易公開課的指令碼,我看了下,感覺還比較簡單,但是有一處不是很理

python字串切片操作

Sequence[left:right:step]: 1,若step為正,則表示從索引left開始取,直到索引right為止,但不包括索引right. 如果left >= right,結果為空; 如果left預設,預設為0; 如果right預設,預設為len(Sequence)

python字串以及內建方法

字串的操作方法 +  字串連線操作 str1 = "大金鍊子" str2 = "小手錶" str3 = str1 + str2 print(str3) *  字串複製操作 str1 = "大金鍊子" str2 = "小手錶" str3 = str1*3

Python format格式化字串(轉)

轉自: https://www.cnblogs.com/wilber2013/p/4641616.html  # 位置引數 print("{0} is {1} years old".format("Wilber", 28)) print("{} is {} years old".

python字串常量,是否支援通過下標的方式賦值

說明:   今天在看python,通過下標獲取字串常量的字元,在想是否可以通過下標的方式賦值。 操作: 1.對字串下標賦值 >>> text='python' >>> text[2] = 'j' Traceback (most recent call la

PythonString字串操作

關於字串的一些操作方法:  ascii:字母,數字,特殊字元:1個位元組,8位     Unicode:16位 兩個位元組  升級 32 位  四個位元組     utf-8:最少一個位元組 8位表示。 英文字母 8位 1個位

Python字串string型別基礎

字串基礎 定義 字串屬於python中的一個序列物件(sequence object),一串字元為元素的序列物件。 S = 'hello world!' S = "hello world!" S = '''hello world!''' 訪問

Python字串運算

上次說到Python的字串,當然除了一些字串的概念呢,比較常用的就是字串的運算了,我們都見過數字的運算,其實字串的運算也不復雜。 跟數字一樣,字串也可以進行加法運算以及乘法運算(需要提醒的是字串與字串是不能相乘的,會報錯),具體的表現形式就如圖所示。除此之外,我們還

PythonUnicode字串----初識Python

Python中Unicode字串 字串還有一個編碼問題。 因為計算機只能處理數字,如果要處理文字,就必須先把文字轉換為數字才能處理。最早的計算機在設計時採用8個位元(bit)作為一個位元組(byte),所以,一個位元組能表示的最大的整數就是255(二進位制11111111

PythonUnicode字串

字串還有一個編碼問題。 因為計算機只能處理數字,如果要處理文字,就必須先把文字轉換為數字才能處理。最早的計算機在設計時採用8個位元(bit)作為一個位元組(byte),所以,一個位元組能表示的最大的整數

Pythonraw字串與多行字串

如果一個字串包含很多需要轉義的字元,對每一個字元都進行轉義會很麻煩。為了避免這種情況,我們可以在字串前面加個字首 r ,表示這是一個 raw 字串,裡面的字元就不需要轉義了。例如: r'\(~_~)/

Python判斷字串是不是漢字

isalpha()是Python中用來判斷是否為字母的函式,但是當字元為漢字時函式依然返回YES,在開發中可能遇到判斷一個字元是否是漢字的問題,我們可以根據ASCII判斷字元是否為漢字 def isChineseWord(string): if string.isa

Python關於字串的各種方法

關於capitalize的用法。輸出結果首字母大寫 test = ‘johnny’ v = test.capitalize() print(v) C:\Python36\python.exe C:/test001/test001/test001.py J

python字串的指定位置插入一個字元

# 在字串的自定位置插入字元 # 因為python中str是不可變的變數,所以藉助list來完成 str_i = "20081231" list_i = list(i) # str -> list print(list_i) list_i.insert(4, '/') #

Python 3 格式化字串的幾種方法

%s和%d,%s是用來給字串佔位置,%d是給數字佔位置,簡單解釋下: a = 'this is %s %s' % ('an','apple') 程式輸出的結果就是:this is an apple。很容易理解,第一個%s的值是用後面括號中第一個字串替換的