Python中的基本數(shù)據(jù)類型之字符串類型

上一章數(shù)字類型提到字符串屬于不可變類型:不可變類型一旦創(chuàng)建將無法修改其本身,也就是無法修改內(nèi)存中的值拔妥,對它的所有操作(比如取絕對值)都是得到一個新的值,而不是在原來的內(nèi)存中進(jìn)行修改

字符串類型在任何編程語言里面都是最重要的數(shù)據(jù)類型彩扔,任何編程語言都有字符串類型称诗,Python中的字符串類型有很多的內(nèi)置函數(shù)和判別函數(shù),我們一一的總結(jié)和歸納

字符串類型

  • 字符串的創(chuàng)建

在其他語言中有字符類型岩齿,在Python沒有字符類型太颤,單引號和雙引號包裹的都是字符串,切記沒有字符類型盹沈。字符串類型是一種序列類型龄章,說到序列,就是有順序的乞封,我們可以通過索引來取字符串中的數(shù)據(jù)做裙,并且可以用for循環(huán)遍歷字符串,這就涉及后面文章提到的可迭代對象肃晚,現(xiàn)在我們先不做具體解釋

//1.創(chuàng)建字符串十分簡單
a = "hello world" 
b = 'hello world'
a和b所表示的都是字符串
  • 訪問字符串

訪問字符串的方式是索引锚贱,首先索引就像序號一樣,通過這個序號我們直接可以取到字符串中的值关串,值得注意的是索引是從0開始拧廊,而不是從1開始,比如一個字符的長度(一共有多少個字符)是5晋修,那么它的索引范圍就是[0~4]吧碾,0的位置就是字符串的第一個字符,依次類推

a = "hello world"
print(a[1])  ----> 'e'
print(a[3])  ----> 'l'
print(a[5])  ----> ' ' //注意空格是空白字符墓卦,也是屬于字符串的一部分倦春,也要占一個位置
  • 字符串切片

單一的索引只能找到一個字符,而不能找一串字符落剪,字符串可以利用切片的方式來找一串字符睁本,也就是子字符串,具體語法如下

a = "abcedfghijk"
語法格式
a[x:y] --> 取a中索引位置從x到y(tǒng)-1的所有字符
例如print(a[1:4])取得是索引為1,2,3的字符
print(a[1:4])  ----> "bce"

字符串的切片中還可以設(shè)置步長忠怖,也就是間隔距離,具體的語法格式如下

a = "abcdefg"
a[x:y:z] 取a中索引位置從x到y(tǒng)-1的所有字符 中間間隔z 沒有參數(shù)z的時候呢堰,默認(rèn)為1
例如print(a[0:5:2])取得是索引為0,2,4(中間間隔2)的字符
print(a[0:5:2])  ----> "ace"

上面的情況都是x,y,z都是正數(shù),我們提到的索引是從左至右的脑又,從0開始暮胧,但是還有一種方式是從右至左取的锐借,從右至左取的時候,右邊第一個字符的索引為-1往衷,第二個為-2钞翔,依次類推

a = "abcdefg"
print(a[-1]) ---->  "g"
print(a[-2]) ---->  "f"
  • 字符串中的運(yùn)算符

字符串拼接 +
重復(fù)字符串 *
成員運(yùn)算符 in not in

a = "hello"
b = "world"
print(a+b)  -----> "helloworld"
print(a*2)  -----> "hellohello"
print("a" in a)  -----> False
print("h" in a)  -----> True
這里的False和True是布爾值,表示正確和錯誤的方式
  • 字符串的格式化

三種基本格式化方式席舍,也是用得最多的%s(字符串) %f(浮點(diǎn)型) %d(整型)具體用法如下

//百分號后面的放入%s中
print("%s helllo world" % "dage") -----> "dage hello world"
//當(dāng)需要格式化兩個參數(shù)的時候布轿,百分號后面的數(shù)據(jù)用括號括起來,然后一一對應(yīng)就行
print("%s is %d years old" % ("www",25)) ----> "www is 25 years old"
  • 字符串的內(nèi)置函數(shù)

字符串是Python中十分重要的數(shù)據(jù)類型,提供了大量的內(nèi)置函數(shù)進(jìn)行使用

//使用方法字符串.方法
a = ".........."
a.capitalize()//將字符串的第一個字符轉(zhuǎn)換為大寫
a.count(str, beg= 0,end=len(string))//返回 str 在 string 里面出現(xiàn)的次數(shù)来颤,如果 beg 或者 end 指定則返回指定范圍內(nèi) str 出現(xiàn)的次數(shù)
a.endswith(obj, beg=0, end=len(string))//檢查字符串是否以 obj 結(jié)束汰扭,如果beg 或者 end 指定則檢查指定的范圍內(nèi)是否以 obj 結(jié)束,如果是福铅,返回 True,否則返回 False.
b.startwith(obj, beg=0, end=len(string))//檢查字符串是否以 obj 開始萝毛,如果beg 或者 end 指定則檢查指定的范圍內(nèi)是否以 obj 開始,如果是滑黔,返回 True,否則返回 False.
a.find(str, beg=0 end=len(string))  //檢測 str 是否包含在字符串中笆包,如果指定范圍 beg 和 end ,則檢查是否包含在指定范圍內(nèi)略荡,如果包含返回開始的索引值庵佣,否則返回-1
a.index(str, beg=0, end=len(string))//跟find()方法一樣,只不過如果str不在字符串中會報(bào)一個異常.
a.isalnum()//如果字符串至少有一個字符并且所有字符都是字母或數(shù)字則返 回 True,否則返回 False
a.isalpha()//如果字符串至少有一個字符并且所有字符都是字母則返回 True, 否則返回 False
a.isdigit()//如果字符串只包含數(shù)字則返回 True 否則返回 False..
a.islower()//如果字符串中包含至少一個區(qū)分大小寫的字符汛兜,并且所有這些(區(qū)分大小寫的)字符都是小寫巴粪,則返回 True,否則返回 False
a.isspace()//如果字符串中只包含空白粥谬,則返回 True肛根,否則返回 False    
a.isupper()//如果字符串中包含至少一個區(qū)分大小寫的字符,并且所有這些(區(qū)分大小寫的)字符都是大寫帝嗡,則返回 True晶通,否則返回 False
a.replace(old, new [, max])//把將字符串中的 str1 替換成 str2,如果 max 指定,則替換不超過 max 次哟玷。
a.ljust(width[, fillchar])//返回一個原字符串左對齊,并使用 fillchar 填充至長度 width 的新字符串,fillchar 默認(rèn)為空格
a.rjust(width,[, fillchar])//返回一個原字符串右對齊,并使用fillchar(默認(rèn)空格)填充至長度 width 的新字符串
a.strip([chars])//在字符串上執(zhí)行 lstrip()和 rstrip()
a.split(str="", num=string.count(str))//num=string.count(str))以str為分隔符截取字符串一也,如果 num 有指定值巢寡,則僅截取 num 個子字符串

以上就是對于字符串的操作的一些概要,不一定完善椰苟,但是包含了大部分的問題抑月,不是每一個函數(shù)都要記住,當(dāng)忘記某個函數(shù)的時候查閱一下舆蝴,在寫程序的過程中記憶越來越深刻

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谦絮,一起剝皮案震驚了整個濱河市题诵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌层皱,老刑警劉巖性锭,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異叫胖,居然都是意外死亡草冈,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門瓮增,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怎棱,“玉大人,你說我怎么就攤上這事绷跑∪担” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵砸捏,是天一觀的道長诅岩。 經(jīng)常有香客問我,道長带膜,這世上最難降的妖魔是什么吩谦? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮膝藕,結(jié)果婚禮上式廷,老公的妹妹穿的比我還像新娘。我一直安慰自己芭挽,他們只是感情好滑废,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著袜爪,像睡著了一般蠕趁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上辛馆,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天俺陋,我揣著相機(jī)與錄音,去河邊找鬼昙篙。 笑死腊状,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的苔可。 我是一名探鬼主播缴挖,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼焚辅!你這毒婦竟也來了映屋?” 一聲冷哼從身側(cè)響起苟鸯,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棚点,沒想到半個月后早处,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乙濒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年陕赃,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颁股。...
    茶點(diǎn)故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡么库,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出甘有,到底是詐尸還是另有隱情诉儒,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布亏掀,位于F島的核電站忱反,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏滤愕。R本人自食惡果不足惜温算,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望间影。 院中可真熱鬧注竿,春花似錦、人聲如沸魂贬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽付燥。三九已至宣谈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間键科,已是汗流浹背闻丑。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萝嘁,地道東北人梆掸。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像牙言,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容