標籤:
字串String
使用引號定義的一組可以包含數字,字母,符號(非特殊系統符號)的集合。
如:
Strval=“This is a test!”Strval1=‘This is a test!‘Strval2="""This is a test"""
三重引號(DocString)
Python三重引號允許字串跨越多行,包括逐字分行符號,定位字元和其他特殊字元。
三重引號文法由三個連續的單引號或雙引號。
#!/usr/bin/pythonpara_str = """this is a long string that is made up ofseveral lines and non-printable characters such asTAB ( \t ) and they will show up that way when displayed.NEWLINEs within the string, whether explicitly given likethis within the brackets [ \n ], or just a NEWLINE withinthe variable assignment will also show up."""print para_str;
當執行上面的代碼中,產生以下結果。請注意如何每一個特殊字元被轉換到列印形式,一直到最後的分行符號之間的字串“up”結束閉三重引號。還要注意的是發生或者使用顯式斷行符號在一行或它的轉義代碼(\ n)的尾部的換行:
this is a long string that is made up ofseveral lines and non-printable characters such asTAB ( ) and they will show up that way when displayed.NEWLINEs within the string, whether explicitly given likethis within the brackets [ ], or just a NEWLINE withinthe variable assignment will also show up.
需要注意的是,python會認為 成對的引號之間的內容為字串內容。
如下面的例子 會有語法錯誤
say=’let‘s go’ File "<stdin>" , line1 say=’let‘s go’ ^ SyntaxError:invalid syntax
正確的做法是
如果只包含單引號: 使用雙引號來包含字串
如果包含單引號,雙引號: 使用雙引號來包含字串,並且字串內的雙引號用逸出字元 \ 來轉義
say=“let‘s \" go”
逸出字元
下表是未轉義非列印字元的列表,可以用反斜線符號來表示。
逸出字元被解釋;在一個單引號和雙引號字串。
反斜線 符號 |
十六進位 字元 |
描述 |
| \a |
0x07 |
鈴聲或警報 |
| \b |
0x08 |
退格鍵 |
| \cx |
|
Control-x |
| \C-x |
|
Control-x |
| \e |
0x1b |
轉義 |
| \f |
0x0c |
換頁 |
| \M-\C-x |
|
Meta-Control-x |
| \n |
0x0a |
新一行 |
| \nnn |
|
八進位標記法,其中n的範圍為0.7 |
| \r |
0x0d |
斷行符號 |
| \s |
0x20 |
空格 |
| \t |
0x09 |
Tab鍵 |
| \v |
0x0b |
垂直製表 |
| \x |
|
字元x |
| \xnn |
|
十六進位標記法,其中n的範圍是從0.9,a.f,或AF |
字串特殊操作符
| 操作符 |
描述 |
例子 a= Hello b=Python
|
| + |
串聯- 對操作符的兩側值增加 |
a + b 的值為 HelloPython |
| * |
重複 - 建立新的字串,連結相同的字串的多個副本 |
a*2 的值為 -HelloHello |
| [] |
切片- 從給定的索引字元指定 |
a[1] 的值為 e |
| [ : ] |
範圍切片 - 給定的範圍內的字元 可以給定三個值,起始索引,結束索引,步長值 結束值的索引之前的會被取出來 省略起始索引,從0開始 省略結束索引,到末尾。 如果索引值為負數的話,則從末尾開始
步長值則表示,在切片範圍取值的時候沒間隔多少個字串取出一個字元,預設值為1 如果步長值為負數也可表示 從右往左取
|
a[1:4] 的值為 ell a[:4]的值為Hell a[1:]的值為ello a[-4:-1]的值為ello
a[::2]的值Hlo
|
| in |
成員 - 如果一個字元存在給定的字串中,則返回true |
H in a 結果值為 1 |
| not in |
成員 - 如果輸入的字元不給定的字串中不存在,則返回true |
M not in a 結果值為 1 |
| r/R |
原始字串- 禁止逸出字元的實際意義。文法原始字串是完全一樣的一般字元串,除了原始的字串運算子,字母“r”,這之前的引號。在“r”可以小寫(r)或大寫字母(R)的,必須立即放置在第一引號前面。 |
print r‘\n‘ 列印 \n 並且 print R‘\n‘ 列印 \n |
字串格式化操作
Python最酷的功能是字串格式運算子%。這種操作是唯一的字串,彌補了C語言的printf()系列函數功能。下面是一個簡單的例子:
#!/usr/bin/pythonprint "My name is %s and weight is %d kg!" % (‘Zara‘, 21)
當執行上面的代碼中,產生以下結果:
My name is Zara and weight is 21 kg!
下面是完整的,它可以與%符號使用列表:
| 格式符號 |
轉換 |
| %c |
字元 |
| %s |
通過str() 字串轉換來格式化 |
| %i |
有符號十進位整數 |
| %d |
有符號十進位整數 |
| %u |
無符號十進位整數 |
| %o |
八進位整數 |
| %x |
十六進位整數(小寫字母) |
| %X |
十六進位整數(大寫字母) |
| %e |
索引符號(小寫‘e‘) |
| %E |
索引符號(大寫“E”) |
| %f |
浮點實數 |
| %g |
%f和%e 的簡寫 |
| %G |
%f和%E的簡寫 |
其他支援的符號和功能如下表:
| 符號 |
功能 |
| * |
參數指定寬度和精度 |
| - |
靠左對齊 |
| + |
顯示符號 |
| <sp> |
一個正數前留一個空格 |
| # |
添加前置字元為零(‘0‘)或十六進位前置0x“或”0X“,取決於”x“或”X“是否使用八進位。 |
| 0 |
從鍵盤左邊添加零(而不是空格) |
| % |
‘%%‘給留下一個文字‘%‘ |
| (var) |
映射變數(字典參數) |
| m.n. |
m是最小的總寬度和n是數字,顯示小數點後的位元(如果appl) |
Unicode字串
在Python一般字元串在內部儲存為8位ASCII,而Unicode字串被作為16位Unicode儲存。這使得一組字元更加多樣化,包括大多數語言在世界上的特殊字元。限制處理Unicode字串
#!/usr/bin/pythonprint u‘Hello, world!‘
當執行上面的代碼,產生以下結果:
Hello, world!
正如你所看到的,Unicode字串使用首碼 u,就像原始字串使用首碼 r
走進Python世界(五)資料類型 2. 字串(String)