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)
在模板和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})
可以看到,我們對兩個格式符進行了命名
格式符
格式符為真實值預留位置,並控制顯示的格式。格式符可以包含有一個型別碼,用以控制顯示的型別,如下:
%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
Python中String字串操作
關於字串的一些操作方法: 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的字串,當然除了一些字串的概念呢,比較常用的就是字串的運算了,我們都見過數字的運算,其實字串的運算也不復雜。 跟數字一樣,字串也可以進行加法運算以及乘法運算(需要提醒的是字串與字串是不能相乘的,會報錯),具體的表現形式就如圖所示。除此之外,我們還
Python中Unicode字串----初識Python
Python中Unicode字串 字串還有一個編碼問題。 因為計算機只能處理數字,如果要處理文字,就必須先把文字轉換為數字才能處理。最早的計算機在設計時採用8個位元(bit)作為一個位元組(byte),所以,一個位元組能表示的最大的整數就是255(二進位制11111111
Python中Unicode字串
字串還有一個編碼問題。 因為計算機只能處理數字,如果要處理文字,就必須先把文字轉換為數字才能處理。最早的計算機在設計時採用8個位元(bit)作為一個位元組(byte),所以,一個位元組能表示的最大的整數
Python中raw字串與多行字串
如果一個字串包含很多需要轉義的字元,對每一個字元都進行轉義會很麻煩。為了避免這種情況,我們可以在字串前面加個字首 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的值是用後面括號中第一個字串替換的