翻譯自 這裡
Preface :
The string module contains a number of useful constants and classes, as well as some deprecated legacy functions that are also available as methods on strings. In addition, Python’s built-in string classes support the sequence type methods described in the Sequence Types section, and also the string-specific methods described in the String Methods section. To output formatted strings use template strings or the % operator described in the String Formatting Operations section. Also, see the re module for string functions based on regular expressions.
String constants :
在 string 模組, 你有以下常數可以使用 (底下範例需先 import string):
- string.ascii_letters
- string.ascii_lowercase / string.ascii_uppercase
- string.digits
- string.hexdigits
- string.octdigits
- string.punctuation
- string.printable
- string.whitespace
String functions :
這邊只列出一個常用函數 :
- string.capwords(s[, sep])
String Formatting :
New in version 2.6.
The built-in str and unicode classes provide the ability to do complex variable substitutions and value formatting via the str.format() method described in PEP 3101. TheFormatter class in the string module allows you to create and customize your own string formatting behaviors using the same implementation as the built-in format()method. 接著我們來看看類別 Formatter 提供的方法 :
- format(format_string, *args, **kwargs)
更多 Formatter 的用法可以參考 這裡.
Format String Syntax :
字串物件上的 str.format() 與上面 Formatter 在格式字串語法相同. 在使用格式字串時, 使用 {} 來替換後面的參數. 如果你只是要單純的列印字元 '{' 或 '}', 可以 double 他們成 '{{' 或 '}}' 來取消原有替代字串的功能. 參考範例如下 :
在使用 {} 時的一般語法如下所示 :
有看沒有懂? 沒關係我也是. 直接來看幾個範例 :
另外上面有提到 flag conversion ::= "r" | "s" ; 對應到底字串是如何產生. '!s' 指呼叫物件上方法 str() ; 而 '!r' 呼叫物件上方法 repr().
Format Specification Mini-Language :
看完語法後, 接著來看怎麼對字串或特定的資料 (如數字) 進行格式化. 首先來看說明 :
霧煞煞? 沒關係有範例有真相, 先來看看 align 與 fill 的用法 :
接著來看看 align 的說明 :
而 sign 的說明如下 :
接著來看 sign 使用範例 :
至於 precision 則是用來顯示 float point 數值時最多小數位數. 例如 :
至於數字的呈現, 可以使用 10進位, 2 進位 16進位 etc. 底下為其格式字元說明 :
接著是範例 :
如果你的參數是 float, 則可以使用的格式字元說明如下 :
Format examples :
基本上目前所說明的格式語法與舊式的 % 用法差異不大. 原本的 '%03.2f' 只要使用 {} 便可以輕鬆改寫成 '{:03.2f}'. 這邊利用一堆範例來複習你剛剛學的格式語法. 首先來看看accessing arguments 的範例 :
接著你也可以使用 key arguments 來 mapping :
格式語法也可以 access 參數的 attribute :
如果你的參數是 Sequence type 也是沒問題的拉 :
另外 conversion 的使用差別可以參考下面範例 :
那如果我要對齊字串呢, 使用 align 格式字元 : <, >, = 或 ^ 來完成 :
對於數字的正負號, 其實也有學問的拉 :
數字的進位有 2, 8, 10 與 16 進位的選擇 :
如果你要表現一個比較大的數字, 可以使用 comma 讓數字看起來比較有可讀性 :
至於小數點的精準度 :
更神奇的是, 連時間的格式化也辦得到喔 :
其實格式字元使用還可以更豐富, 如迭代格式字符 etc :
Preface :
The string module contains a number of useful constants and classes, as well as some deprecated legacy functions that are also available as methods on strings. In addition, Python’s built-in string classes support the sequence type methods described in the Sequence Types section, and also the string-specific methods described in the String Methods section. To output formatted strings use template strings or the % operator described in the String Formatting Operations section. Also, see the re module for string functions based on regular expressions.
String constants :
在 string 模組, 你有以下常數可以使用 (底下範例需先 import string):
- string.ascii_letters
- string.ascii_lowercase / string.ascii_uppercase
- string.digits
- string.hexdigits
- string.octdigits
- string.punctuation
- string.printable
- string.whitespace
String functions :
這邊只列出一個常用函數 :
- string.capwords(s[, sep])
String Formatting :
New in version 2.6.
The built-in str and unicode classes provide the ability to do complex variable substitutions and value formatting via the str.format() method described in PEP 3101. TheFormatter class in the string module allows you to create and customize your own string formatting behaviors using the same implementation as the built-in format()method. 接著我們來看看類別 Formatter 提供的方法 :
- format(format_string, *args, **kwargs)
更多 Formatter 的用法可以參考 這裡.
Format String Syntax :
字串物件上的 str.format() 與上面 Formatter 在格式字串語法相同. 在使用格式字串時, 使用 {} 來替換後面的參數. 如果你只是要單純的列印字元 '{' 或 '}', 可以 double 他們成 '{{' 或 '}}' 來取消原有替代字串的功能. 參考範例如下 :
在使用 {} 時的一般語法如下所示 :
有看沒有懂? 沒關係我也是. 直接來看幾個範例 :
另外上面有提到 flag conversion ::= "r" | "s" ; 對應到底字串是如何產生. '!s' 指呼叫物件上方法 str() ; 而 '!r' 呼叫物件上方法 repr().
Format Specification Mini-Language :
看完語法後, 接著來看怎麼對字串或特定的資料 (如數字) 進行格式化. 首先來看說明 :
霧煞煞? 沒關係有範例有真相, 先來看看 align 與 fill 的用法 :
接著來看看 align 的說明 :
而 sign 的說明如下 :
接著來看 sign 使用範例 :
至於 precision 則是用來顯示 float point 數值時最多小數位數. 例如 :
至於數字的呈現, 可以使用 10進位, 2 進位 16進位 etc. 底下為其格式字元說明 :
接著是範例 :
如果你的參數是 float, 則可以使用的格式字元說明如下 :
Format examples :
基本上目前所說明的格式語法與舊式的 % 用法差異不大. 原本的 '%03.2f' 只要使用 {} 便可以輕鬆改寫成 '{:03.2f}'. 這邊利用一堆範例來複習你剛剛學的格式語法. 首先來看看accessing arguments 的範例 :
接著你也可以使用 key arguments 來 mapping :
格式語法也可以 access 參數的 attribute :
如果你的參數是 Sequence type 也是沒問題的拉 :
另外 conversion 的使用差別可以參考下面範例 :
那如果我要對齊字串呢, 使用 align 格式字元 : <, >, = 或 ^ 來完成 :
對於數字的正負號, 其實也有學問的拉 :
數字的進位有 2, 8, 10 與 16 進位的選擇 :
如果你要表現一個比較大的數字, 可以使用 comma 讓數字看起來比較有可讀性 :
至於小數點的精準度 :
更神奇的是, 連時間的格式化也辦得到喔 :
其實格式字元使用還可以更豐富, 如迭代格式字符 etc :
This message was edited 1 time. Last update was at 24/03/2012 21:48:49
沒有留言:
張貼留言