1. 程式人生 > >Python教程(2.4)——字符串

Python教程(2.4)——字符串

運算 this sca 新的 也會 註意 詳細 book 用兩個

2.2節講過,Python中有字符串類型。在Python中,字符串用‘或"括起,例如‘abc‘、"qwerty"等都是字符串。註意‘和"並不是字符串的內容。

ASCII(American Standard Code for Information Interchange)碼

電腦可以存儲數字,那字符怎麽辦?答案是可以給字符編碼,這樣只要存儲數字,顯示時轉成字符就可以了。由於電腦是美國人發明的,因此電腦最初只有128個(不是很確定)字符被編碼,叫做ASCII碼,範圍為0~127。例如字母A的ASCII碼為65,字母d的ASCII碼為100。

一個8位無符號整數的存儲範圍是0~255,因此存儲ASCII字符只需要一個字節。

此外,還有擴展的ASCII編碼,範圍為0~255。前128個字符是一樣的,後128個則是例如a、é這樣的帶有註音符號的字符。這裏不詳細介紹。

Unicode

因為世界上不僅有英語,還有其它語言,其它語言中又有更多的字符。因此ASCII碼不能滿足要求,需要一個新的字符集——Unicode。Unicode包含了世界上大多數語言的字符。例如中文的“我”字,Unicode碼為25105,“文”字是25991。

一般字符需要2個字節進行存儲,很偏僻的就需要4個字節。

字符串和字符串常量

根據字符的概念,字符串可以被重新定義成若幹字符的組合。Python中的字符串類型為str,采用Unicode編碼。因此裏面可以使用Unicode字符(例如中文)。Python中沒有

單獨的字符類型。

字符串常量就是指像"python"、‘globe‘這些不變的字符串,與變量相對。

轉義字符/序列(escape character/sequence)

字符串裏不僅能包含普通字符,還可以包含特殊字符。這些特殊字符就需要通過特殊方法表示出來,這種字符叫做轉義字符。在Python中,轉義字符以\開頭。因為轉義字符在代碼中需要用兩個字符表示,也叫做轉義序列

在字符串中,你可能想換行,這時就可以使用\n轉義字符;你可能想要tab,這時你可以直接打tab或使用\t轉義字符(推薦後者)。

例如:

>>> print(first line\nsecond line\nthird line
) first line second line third line

與下面:

print(first line)
print(second line)
print(third line)

或下面:

>>> print(first line)
first line
>>> print(second line)
second line
>>> print(third line)
third line

是相同的。

對於\t也是一樣的:

>>> print(1\t2\t3\t4\tend)
1    2    3    4    end

還有一些容易造成歧義的字符,例如‘、"和\(‘和"會被以為成字符串的開始或結束,\會認為是轉義符號),也需要使用轉義序列\‘、\"和\\才能輸出:

>>> print(You must use \\\‘, \\\" and \\\\ to display \‘, \" and \\.)
You must use \‘, \" and \\ to display ‘, " and \.

當然,對於只含有‘的字符串,可以用"括起;對於只含有"的字符串,可以用‘括起。例如:

>>> print("All right", he says.)
"All right", he says.
>>> print("I‘m OK.")
I‘m OK.

至於既有‘又有"的字符串就只能用轉義序列或者(下文即將講到的)原始字符串了。

原始字符串(raw string)

Python支持原始字符串。這種字符串內的字符都是原始的,沒有轉義。轉義字符串用r‘ ‘括起,例如:

>>> rthis \n does not mean newline
‘this \\n does not mean newline‘

不過註意,Python在不用print()顯示字符串時,是會加上轉義符號\的。

多行字符串

有時候,字符串裏有很多換行符不夠方便,這時可以使用多行字符串。多行字符串用‘‘‘ ‘‘‘或""" """(每邊3個‘或3個")括起。例如:

>>> print(‘‘‘first line
... second line
... third line‘‘‘)
first line
second line
third line

註意輸入多行字符串時,在字符串結束之前,命令提示符也會變成...。

在多行字符串一行結尾加\可以防止換行:

>>> print(‘‘‘... first line
... second line
... third line... ‘‘‘)
first line
second line
third line

字符串操作

計算長度

使用len()函數計算字符串長度。例如:

>>> len(GoldenGlobalView)
16
>>> s = internationalization
>>> len(s)
20
>>> len(Unicode字符串)
10

獲取字符串中的某個字符

使用string[index]可以獲取索引為index的字符:

>>> s = Python Tutorial
>>> s[0]
‘P‘
>>> s[5]
‘n‘
>>> s[12]
‘i‘

註意索引從0開始,0索引對應第一個字符,1對應第二個,2對應第三個,等等。

如果索引太大,就會出現錯誤:

>>> s[100]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range

註意雖然這樣可以獲取字符串中的某個字符,但是獲取的仍然是字符串類型,只是長度為1。

拼接字符串常量

兩個字符串常量可以直接寫在一起,進行拼接(concatenation):

>>> class‘‘mate
‘classmate‘
>>> "pyt""hon"
‘python‘
>>> note‘"book"
‘notebook‘

註意兩個字符串可以一個用‘括起,一個用"括起。

拼接字符串

如果是一個類型為str的變量和一個字符串常量,就不能直接寫在一起進行拼接了:

>>> s = class
>>> s mate
  File "<stdin>", line 1
    s ‘mate‘
           ^
SyntaxError: invalid syntax

這時需要用+運算符:

>>> s = class
>>> s + mate
‘classmate‘

+運算符也可以用於兩個str變量之間:

>>> s1 = class
>>> s2 = mate
>>> s1 + s2
‘classmate‘

(未完)

Python教程(2.4)——字符串