走進Python世界(五)數據類型 2. 字符串(String)

字符串String

使用引號定義的一組能夠包含數字,字母,符號(非特殊系統符號)的集合。python

如: 
app

Strval=「This is a test!」
Strval1='This is a test!'
Strval2="""This is a test"""

三重引號(DocString)

Python三重引號容許字符串跨越多行,包括逐字換行符,製表符和其餘特殊字符。函數

三重引號語法由三個連續的單引號或雙引號。this

#!/usr/bin/python

para_str = """this is a long string that is made up of
several lines and non-printable characters such as
TAB ( \t ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [ \n ], or just a NEWLINE within
the variable assignment will also show up.
"""
print para_str;

當執行上面的代碼中,產生如下結果。請注意如何每個特殊字符被轉換到打印形式,一直到最後的換行符之間的字符串「up」結束閉三重引號。還要注意的是發生或者使用顯式回車在一行或它的轉義代碼(\ n)的尾部的換行:spa

this is a long string that is made up of
several lines and non-printable characters such as
TAB (    ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [
 ], or just a NEWLINE within
the variable assignment will also show up.



須要注意的是,python會認爲 成對的引號之間的內容爲字符串內容。code

以下面的例子 會有語法錯誤
索引

say=’let‘s go’

 File "<stdin>" , line1
 say=’let‘s go’
          ^
 SyntaxError:invalid syntax


正確的作法是ci

若是隻包含單引號: 使用雙引號來包含字符串字符串

若是包含單引號,雙引號: 使用雙引號來包含字符串,而且字符串內的雙引號用轉義字符 \ 來轉義
string

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/python

print "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/python

print u'Hello, world!'

當執行上面的代碼,產生如下結果:

Hello, world!

正如你所看到的,Unicode字符串使用前綴 u,就像原始字符串使用前綴 r

相關文章
相關標籤/搜索