Python字符串類型的詳細(xì)介紹
Python字符串類型在使用的時(shí)候會(huì)有許多知識(shí)需要大家學(xué)習(xí),下面我們來看看如何進(jìn)行細(xì)致的學(xué)習(xí),這樣對(duì)今后更好的使用有很大幫助。希望大家有所收獲。#t#
中的序列是由非負(fù)整數(shù)索引的對(duì)象的有序集合(真拗口,其實(shí)意思就是下標(biāo)從0開始),它包括字符串、Unicode字符串、列表、元組、xrange對(duì)象以及緩沖區(qū)對(duì)象。后兩種類型我們先不介紹,后邊用到時(shí)再說明。
Python字符串類型
Python擁有兩種字符串類型:標(biāo)準(zhǔn)字符串(str)是單字節(jié)字符序列,Unicode字符串(unicode)是雙字節(jié)字符序列。
在Python中定義一個(gè)標(biāo)準(zhǔn)字符串(str)可以使用單引號(hào)、雙引號(hào)甚至三引號(hào),這使得Python輸入文本比C#更方便。比如當(dāng)str的內(nèi)容中包含雙引號(hào)時(shí),就可以用單引號(hào)定義,反之亦然。當(dāng)字符中有換行符等特殊字符時(shí),可以直接使用三引號(hào)定義。這樣就方便了很多,不用去記那些亂七八糟的轉(zhuǎn)義字符。當(dāng)然Python也支持轉(zhuǎn)義字符,且含義和C#基本一樣。不過既然有簡(jiǎn)單的東西用,誰還去自找麻煩呢?
下邊是一個(gè)例子,來說明以上幾點(diǎn):
- str1 = 'I am "Python"\n'
- str2 = "I am 'Python'\r"
- str3 = """
- I'm "Python",
- <a href="http://Csharp.com">you are C#</a>
- """ #你可以把html代碼之類的東西直接弄進(jìn)來而不需要做特殊處理7 print str1,str2,str3
在Python中定義一個(gè)Unicode字符串,需要在引號(hào)前面加上一個(gè)字符u,例如
- # -*- coding: utf-8 -*-
- print u'我是派森'
這點(diǎn)沒有C#方便,因?yàn)镃#字符串默認(rèn)就是Unicode的,我想Python如果要改進(jìn),應(yīng)該把兩種字符串合二為一,這樣可以為初學(xué)者減少很多麻煩(你看網(wǎng)上有多少帖子是在問Python怎么支持中文?根源都在這里)。同時(shí)注意,當(dāng)使用utf-8編碼時(shí),非unicode字符中一個(gè)漢字的長(zhǎng)度是3,而使用gb2312時(shí)是2,見下邊代碼:
- # -*- coding: utf-8 -*-
- unicode = u'我'
- str = '我'
- print len(unicode),len(str)
- #輸出 1 3 6 7 # -*- coding: gb2312 -*-
- unicode = u'我'
- str = '我'
- print len(unicode),len(str)#輸出 1 2
另外,Python字符串類型沒有C#中的字符類型,再短的文本也是字符串,這點(diǎn)稍微注意一下就可以,因?yàn)楝F(xiàn)在使用C#的也很少用char了吧?
***,關(guān)于字符串的操作方法,基本上C#有的Python都有,可以看看Python字符串類型手冊(cè)之類的資料,我就不多說了。唯一提一點(diǎn)就是在Python中提取一個(gè)字符串的子串時(shí),記得用“切片”語句(后邊講列表和元組時(shí)還會(huì)介紹),而不要再去找SubString了,見下邊的例子:
- # -*- coding: utf-8 -*-
- str1 = u'我是派森'
- print str1[2:4]
- #輸出 '派森'
以上就是對(duì)Python字符串類型的詳細(xì)介紹。