Python數據類型——字符串

    概論

  字符串顧名思義就是一串字符,因爲Python中沒有「字符」這種數據類型,因此單個的字符也依然是字符串類型的。字符串能夠包含一切數據,不管是能從鍵盤上找到的,仍是你根本都不認識的。與數同樣,字符串也是值。字符串是不可變的類型。字符串用""雙引號或者''單引號擴起,你可能會問,這有什麼差異嗎?其實沒有任何差異。使用單雙引號的輸出結果徹底相同。git

  既然如此,爲什麼同時支持單引號和雙引號呢?由於你可能遇到以下狀況:api

  這裏就體現出單雙引號的做用,若是隻使用單引號或者雙引號,在執行如上其中一種狀況的時候,解釋器就會報錯。ide

  除了單引號和雙引號,三引號也是一個很是好用的定義方法,它的用法和三引號註釋是相同的,也是能夠支持將多行擴起,單引號和雙引號只能定義在同一行內。函數

    str()方法

  字符串既是一個類型也是一個方法,str()就是一個工廠函數,它會把括號內的值轉化成字符串,可是這個轉化過程也不是什麼都無腦轉化,它遵循了字符串的一些方法。好比str()會自動識別字符串中的單引號或者雙引號,以做爲字符串結束的標誌,而當str()找到換行符和製表符以後,也不會按照原樣將它們輸出。編碼

好比說你想讓解釋器輸出s\nb,小牛逼,而後str()識別到"\n"就做爲換行符輸出了,結果就變成了傻逼。。。通常狀況下把\n做爲換行符代替回車鍵是很方便的,可是當你真的想讓解釋器打出'\n'的時候就要用到特殊的方法了。spa

    反斜槓(\)

  反斜槓是讓斜槓後面的一個可讓str()啓動神祕功能的特殊字符失去特殊做用,變成通常的字符。它遵循從左到右的運算順序。好比說我在"\n"前面加上反斜槓,"\n"也就不做爲換行符被str()執行換行操做了,它會變成通常字符"\n"輸出。3d

  值得注意的是,反斜槓出如今特殊字符前面會隱形,而出如今通常字符的前面會做爲普通的字符輸出。code

  想要輸出兩個\的話,由於\自己也是特殊字符,因此"\\"的前面一個反斜槓會把後面的反斜槓做爲特殊符號轉義成通常符號,它本身則在輸出的時候隱形了,若是想要輸出兩個反斜槓的話,要打三個或者四個反斜槓。orm

  通常使用反斜槓讓製表符、換行符、反斜槓本身、單雙引號的魔法失靈,從而做爲普通字符來輸出它們。blog

    原始字符串

  原始字符串就是告訴計算機,一切開始簡單粗暴,我輸入什麼,就給我輸出什麼,可是要注意不要以反斜槓結尾,由於反斜槓會讓最後一個引號失去標記結尾的做用,致使str()沒法識別結尾,以致於報錯。

   字符串內置方法

1.按索引取值

>>> s='string'
>>> s[0]
's'
>>> s[1]
't'
>>> s[-1]
'g'

-1是最後一位,索引支持從後往前取值。

2.切片

>>> s='string'
>>> s[1:3]
'tr'
>>> s[3:1:-1]
'ir'

切片是顧頭不顧尾的,也就是取不到結尾索引的位置。永遠在結尾索引的前一位就截止了。

切片最後一個參數是步長,能夠爲正也能夠爲負。

3.長度len

字符串元素的個數。

4.成員運算in和not in

判斷一個子字符串是否存在於大字符串中

5.移除空白strip: 用來去除字符串左右兩邊的字符,不指定默認去除的是空格

>>> s='   string    '
>>> s.strip()
'string'
>>> s='  ***string***    '
>>> s.strip('*')
'  ***string***    '
# 當指定字符時,則不清楚空格\換行符,只清楚指定的字符。

6.切分split:針對有規律的字符串,按照某種分隔符切成列表

>>> s='a|b|c|d|e|f|g'
>>> s.split('|')
['a', 'b', 'c', 'd', 'e', 'f', 'g']

7.join:列表拼接成字符串

>>> '_'.join(['a', 'b', 'c', 'd', 'e', 'f', 'g'])
'a_b_c_d_e_f_g'

8.lower,upper大小寫轉化

>>> 'ABC'.lower()
'abc'
>>> 'abc'.upper()
'ABC'

9.startswith,endswith 斷定字符串開頭和結尾是不是某個子字符串

>>> 'abcaaaaa'.startswith('abc')
True
>>> 'abcaaaaa'.endswith('a')
True

10.format的三種玩法

  1.按位傳參

  2.關鍵字傳參

  3.按索引傳參

11.replace(old,new)

Return a copy with all occurrences of substring old replaced by new.

12.isdigit等數字判別

isdigit  斷定一個字符串是不是純阿拉伯數字,可斷定Unicode和Bytes編碼

isdecimal 斷定Unicode編碼的阿拉伯數字

isnumberic 斷定中文、羅馬、阿拉伯數字

13.find 輸出子字符串在字符串中第一個索引

>>> '123456'.find('56')
4

14.center,ljust,rjust,zfill 填充

15.captalize,swapcase,title

>>> 'abcdef dddddd'.capitalize()  # 句首字母大寫
'Abcdef dddddd'
>>> 'abcAef dddddd'.swapcase()  # 大小寫反轉
'ABCaEF DDDDDD'
>>> 'abcAef dddddd'.title()  #單詞首字母大寫
'Abcaef Dddddd'
相關文章
相關標籤/搜索