Python基礎---字串

來源:互聯網
上載者:User

標籤:tar   等於   text   alpha   target   swa   back   開始   區間   

字串(String)

定義:一系列字元;

     在Python中,使用 ‘ ‘ or " "括起來的都是字串;

     是Python中最常用的一種資料類型(datatype)。

常用操作:

1、串連操作[ + ]:

  x = str1 + str2

1 var1 = ‘123‘2 var2 = ‘456‘3 var3 = var1 + var24 print(var3)5 --->123456

2、複製操作[ * ]:

  x = str1 * n         n必須為整數。

1 var1 = ‘123‘2 var4 = var1 * 33 print(var4)4 --->123123123

3、索引操作[ [] ]:

  x = str[n]  n為x在字串中的位置;Python中,從0開始計數。

1 var1 = ‘abcde0‘2 var2 = var1[0]3 print(var2)4 --->a

4、切片操作[ [ : : ] ]:

  x = str[a : b : c]  a 為起始位置,b 為終止位置(在結果中,不包含 b 值),c 為索引增加的值(預設為1)。

1 var1 = ‘abcde0‘2 var2 = var1[0:3]3 print(var2)4 --->abc5 6 var1 = ‘abcdefghijklmnopqrstuvwxyz‘7 var2 = var1[0:15:2]8 print(var2)9 --->acegikmo

5、成員檢查[ in & not in ]:

  檢查x是否在字串中,返回bool值;

  ‘x‘ in str   ‘x‘ not in str

1 var1 = ‘ABCDEFG‘2 print(‘A‘ in var1)3 print(‘A‘ not in var1)4 --->True5 --->False

6、原始字串[ r & R]:

  所有的字串都是直接按照字面的意思來使用,沒有轉義特殊或不能列印的字元。

  原始字串除在字串的第一個引號前加上字母"r"(可以大小寫)以外,與一般字元串有著幾乎完全相同的文法。

  r"str"

1 var1 = r‘A\nB\\C\‘D\"EFG‘2 print(var1)3 --->A\nB\\C\‘D\"EFG

 

字串中的逸出字元:需要在字元中使用特殊字元時,python用反斜線(\)逸出字元。

1、續行符:\  在行尾時使用

1 var1 = ‘ABCDE2         FG‘

2、反斜線符號:\\   在輸出的字串中顯示一個\

1 var1 = ‘ABCDE\\FG‘2 print(var1)3 --->ABCDE\FG

3、單&雙引號:\‘  &  \" 在輸出的字串中顯示一個 ‘ 或 "

1 var1 = ‘ABC\"DE\‘FG‘2 print(var1)3 --->ABC"DE‘FG

4、空:\000  在輸出的字串中顯示一個空格

1 var1 = ‘ABCDE\000FG‘2 print(var1)3 --->ABCDE FG

5、換行:\n  將字串輸出為兩行

1 var1 = ‘ABCDE\nFG‘2 print(var1)3 --->ABCDE4 --->FG 

 6、橫向&縱向定位字元:\t & \v

1 var1 = ‘\tABCDEFG‘2 print(var1)3 --->    ABCDEFG

 

字串相關常用函數:

1、capitalize():  將字串第一個字元大寫

1 var1 = ‘hello_world‘2 print(var1.capitalize())3 --->Hello_world

2、title():  返回"標題化"的 string,就是說所有單詞都是以大寫開始,其餘字母均為小寫

1 var1 = ‘hello_world‘2 print(var1.title())3 --->Hello_World

3、upper()  &  lower():  將所有字元大寫&小寫

1 var1 = ‘hello_world‘2 print(var1.upper())3 4 var2 = ‘ABCDEFG‘5 print(var2.lower())6 7 --->HELLO_WORLD8 --->abcdefg

4、swapcase():  字串中大小寫互換

1 var2 = ‘ABcdeFG‘2 print(var2.swapcase())3 --->abCDEfg

5、len():  擷取字串長度

1 var1 = ‘hello_world‘2 print(len(var1))3 --->11

6、count():統計字串中指定字元的出現次數

  count(‘x‘, a, c)  ‘x‘ 為指定字元;a,b為起始和終止區間範圍(區間不包含 b ;預設為尋找全部區間)

1 var = ‘abcdergaaaawerwasfwwweaatse‘2 print(var.count(‘a‘))3 --->84 print(var.count(‘a‘, 0, 15))5 --->5

 7、find() & index():  尋找指定字元在字串中第一次出現的位置

  find():找到後會返回指定字元在字串中的索引,如果不存在,則返回 -1

  index():用法同find(),但是 如果不存在,則會報錯

 1 var1 = ‘hello_world‘ 2 print(var1.find(‘l‘)) 3 --->2 4 print(var1.find(‘g‘)) 5 --->-1 6 print(var1.index(‘l‘)) 7 --->2 8 print(var1.index(‘g‘)) 9 --->Traceback (most recent call last):10   File "檔案路徑", line 5, in <module>11     print(var1.index(‘g‘))12 ValueError: substring not found

 8、split():  使用特定字元將字串切割成多個字串組成的列表

  str.split(str="", num=string.count(str))  參數num為分割次數

1 var1 = ‘hello_world_hello_China‘2 print(var1.split(‘_‘))3 --->[‘hello‘, ‘world‘, ‘hello‘, ‘China‘]4 print(var1.split(‘_‘, 1))5 --->[‘hello‘, ‘world_hello_China‘]

9、splitlines():  按照行(‘\r‘, ‘\r\n‘, \n‘)分隔,返回一個包含各行作為元素的列表

  str.splitlines([keepends])  keepends在輸出結果裡是否去掉分行符號(‘\r‘, ‘\r\n‘, \n‘),預設為 False,不包含分行符號,如果為 True,則保留分行符號

1 var1 = ‘a\nbcd\ref\r\nghij\rklmn‘2 print(var1.splitlines())3 --->[‘a‘, ‘bcd‘, ‘ef‘, ‘ghij‘, ‘klmn‘]4 print(var1.splitlines(True))5 --->[‘a\n‘, ‘bcd\r‘, ‘ef\r\n‘, ‘ghij\r‘, ‘klmn‘]

 

10、join():  將序列中的元素以指定的字元串連產生一個新的字串(相當於split的反向操作)

  str.join(sequence)  sequence為要串連的元素序列

1 list1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘]2 var1 = ‘-‘.join(list1)3 print(var1)4 --->a-b-c-d-e

11、strip(chars)         |--兩邊--|

   lstrip(chars)  將字串的--|--起始--|--符號去掉,預設去除空格;將指定符號去掉後,空格補位

   rstrip(chars)         |--末尾--|

           chars為指定字元

 1 var1 = ‘  abcd  ‘ 2 var2 = ‘@@[email protected]@‘ 3 print(var1.strip()) 4 --->abcd 5 print(var1.lstrip()) 6 --->abcd   7 print(var1.rstrip()) 8 --->  abcd 9 print(var1.strip(‘@‘))10 --->  abcd  

 12、zfill():  0的填充效果(常用於資料庫中資料的儲存)

    center(width, fillchar)                         |--置中

    ljust(width, fillchar)    使用指定輸入鍵台字串,原有字串內容--|--居左  

    rjust(width, fillchar)                         |--居右

                 width為新字串的總長度,fillchar為要填入的字元  

*warning*:

  1. 不提供 fillchar 參數則預設為空白格
  2. 當 width 參數小於等於原字串的長度時,原樣返回
  3. 無法使左右字元數相等時候,右側字元會比左側少 1
1 var1 = ‘abcd‘2 print(var1.zfill(10))3 --->000000abcd4 print(var1.center(9, ‘¥‘))5 --->¥¥¥abcd¥¥6 print(var1.ljust(9, ‘¥‘))7 --->abcd¥¥¥¥¥8 print(var1.rjust(9, ‘¥‘))9 --->¥¥¥¥¥abcd

 13、maketrans() 和 translate():字串替換操作

  str.maketrans(intab, outtab,  deletechars)  intab -- 字串中要替代的字元組成的字串   

                          outtab -- 相應的映射字元的字串

                            deletechars -- 字串中要刪除的字元列表

     str.translate(table)  table -- 翻譯表,翻譯表是通過maketrans方法轉換而來

1 var1 = ‘ABcdABefffffffff‘2 var2 = ‘‘.maketrans(‘AB‘, ‘你好‘, ‘f‘)3 var3 = var1.translate(var2)4 print(var3)5 --->你好cd你好e

14、字串的檢測:

  1、starswith(suffix, start, end):檢測字串是否以指定的字元開頭  suffix為一個字串或者一個元素,start,end為檢索字串的起始和終止位置,返回bool值

     endswith(suffix, start, end):-----------------------------結尾

1 var1 = ‘abcabdcsidjsffwaiddddksf‘2 print(var1.startswith(‘ab‘))3 --->True4 print(var1.endswith(‘ddd‘))5 --->False

 

  2、isalnum():如果字串至少有一個字元並且所有字元都是字母或數字則返 回 True,否則返回 False

     isalpha():如果字串至少有一個字元並且所有字元都是字母則返回 True, 否則返回 False

1 var1 = ‘abcabdcsidjsffwaiddddksf‘2 var2 = ‘22323‘3 print(var1.isalnum())4 --->True5 print(var2.isalpha())6 --->False

  3、isdigit():    如果字串只包含數字則返回 True 否則返回 False..

     isnumric():  如果字串中只包含數字字元,則返回 True,否則返回 False

     isdecimal():   檢查字串是否只包含十進位字元。這種方法只存在於unicode對象。

            注意:定義一個十進位字串,只需要在字串前添加 ‘u‘ 首碼即可。

     以下黑體內容引用自本站  降龍伏虎  部落格:http://www.cnblogs.com/jebeljebel/p/4006433.html,

   非常感謝前輩總結出來的結果!

  isdigit()
  True: Unicode數字,byte數字(單位元組),全形數字(雙位元組),羅馬數字
  False: 漢字數字
  Error: 無

  isdecimal()
  True: Unicode數字,,全形數字(雙位元組)
  False: 羅馬數字,漢字數字
  Error: byte數字(單位元組)

  isnumeric()
  True: Unicode數字,全形數字(雙位元組),羅馬數字,漢字數字
  False: 無
  Error: byte數字(單位元組)

     

 

 

  

 

 

 

 

  

Python基礎---字串

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.