Day 3 Python字串

來源:互聯網
上載者:User

標籤:expr   檢查   接受   語言   檢索   範圍   寬度   置中   執行   

一、編碼

  電腦只能處理數字,如果要處理文本,就必須先把文本轉換為數字才能處理。最早的電腦在設計時採用8個位元(bit)作為一個位元組(byte),所以,一個位元組能表示的最大的整數就是255(二進位11111111=十進位255),如果要表示更大的整數,就必須用更多的位元組。比如兩個位元組可以表示的最大整數是65535,4個位元組可以表示的最大整數是4294967295

  ASCII編碼(美國資訊交換標準代碼),它通常是用1個位元組表示一個字元,它用數字0~127來表示電腦鍵盤上有的字元以及被稱為控制碼的某些特殊值,用於協調資訊的發送和接受。大寫字母A~Z由值65~90表示,小寫字母a~z由值97~122表示。

  Unicode編碼把所有語言都統一到一套編碼裡,但它最常用的是用兩個位元組表示一個字元(如果要用到非常偏僻的字元,就需要4個位元組)。現代作業系統和大多數程式設計語言都直接支援Unicode。

  如果統一成Unicode編碼,亂碼問題從此消失。但是,如果文本基本上全部是英文的話,用Unicode編碼比ASCII編碼需要多一倍的儲存空間,在儲存和傳輸上就十分不划算。所以出現了把Unicode編碼轉化為“可變長編碼”的UTF-8編碼。

  UTF-8編碼把一個Unicode字元根據不同的數字大小編碼成1-6個位元組,常用的英文字母被編碼成1個位元組,漢字通常是3個位元組,只有很生僻的字元才會被編碼成4-6個位元組。如果你要傳輸的文本包含大量英文字元,用UTF-8編碼就能節省空間的。實際上ASCII編碼可以被看成是UTF-8編碼的一部分。

  以上是ASCII、Unicode和UTF-8的關係,總結一下現在電腦系統通用的字元編碼工作方式:在電腦記憶體中,統一使用Unicode編碼,當需要儲存到硬碟或者需要傳輸的時候,就轉換為UTF-8編碼。

  在最新的Python 3版本中,字串是以Unicode編碼的,即Python的字串支援多語言的。在操作字串時,我們經常遇到strbytes的互相轉換。為了避免亂碼問題,應當始終堅持使用UTF-8編碼對strbytes進行轉換。str通過encode()方法可以編碼為指定的bytes;相反,把bytes通過decode()方法可變為str

二、字串操作

  • 串連(+)

  它通過將兩個字串粘合在一起來構建字串;

1 str1 = "Good"2 str2 = "Luck"3 str3 = str1 + str24 print(str3)

  結果為:

1 GoodLuck
  • 重複(*)

  它通過字串與多個自身串連來構建字串;

1 str1 = "Good"2 str2 = "Luck"3 str3 = str1 * 24 print("str3:", str3)5 str4 = 3 * str26 print("str4:", str4)

  結果為:

1 str3: GoodGood2 str4: LuckLuckLuck
  • 長度 len(<string>)

  它給出字串含有多少個字元;

str = "GoodLuck"
print("str的長度為:", len(str))

  結果為:

str的長度為: 8
  • 字串索引

  字串是一個字元序列,通常訪問組成字串的單個字元可以通過索引來完成,在n個字元的字串中,索引從0開始,n-1結束。Python中還允許用負數索引,從字串右端索引。字串索引的一般形式為:

    <string>[<expr>]

1 str = "GoodLuck"2 print("str的長度為:", len(str))3 print("str第一個字元:", str[0])4 print("str第三個字元:", str[2], "str第五個字元:", str[4])5 print("str最後一個字元:", str[len(str)-1])6 print("str最後一個字元:", str[-1])7 print("str倒數第二個字元:", str[-2])

  結果為:

1 str的長度為: 82 str第一個字元: G3 str第三個字元: o str第五個字元: L4 str最後一個字元: k5 str最後一個字元: k6 str倒數第二個字元: c
  • 字串切片

  索引返回的是字串的單個字元,若需要從字串中訪問連續的字元序列或子字串,則可以用切片來實現。切片的形式是:

    <string>[<start>: <end>]

  切片產生從start直到(但不包括)end位置給出的子串。

 

1 str = "Hi jack,Good Luck!"2 print("str[0:3]:", str[0:3])3 print("str[3:14]:", str[3:14])4 print("str[:8]:", str[:8])5 print("str[8:]:", str[8:])6 print("str[:]:", str[:])

 

  結果為:

1 str[0:3]: Hi 2 str[3:14]: jack,Good L3 str[:8]: Hi jack,4 str[8:]: Good Luck!5 str[:]: Hi jack,Good Luck!

三、字串內建函數

  • capitalize()

    首字元會轉換成大寫,其餘字元會轉換成小寫。首字元如果是非字母,首字母不會轉換成大寫,會轉換成小寫。

  • center(width, fillchar)

    返回一個指定的寬度 width 置中的字串,fillchar 為填充的字元,預設為空白格。

 

  • count(sub, start= 0,end=len(string))

    用於計字串裡某個子串的次數。選擇性參數為在字串搜尋的開始與結束位置。

 

  • endswith(suffix[, start[, end]])

    用於判斷字串是否以指定尾碼結尾,如果以指定尾碼結尾返回True,否則返回False。選擇性參數"start"與"end"為檢索字串的開始與結束位置。

 

  • find(str, beg=0 end=len(string))

      檢測字串中是否包含子字串 str ,如果指定 beg(開始) 和 end(結束) 範圍,則檢查是否包含在指定範圍內,如果指定範圍內如果包含指定索引值,返回的是索引值在字串中的起始位置。如果不包含索引值,返回-1。
  • index(str, beg=0, end=len(string))

      跟find()方法一樣,只不過如果str不在字串中會報一個異常。
  • isalnum()

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

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

      如果字串中包含至少一個區分大小寫字元,並且所有這些(區分大小寫)字元都是小寫,則返回 True,否則返回 False。
  • isnumeric()

      如果字串中只包含數字字元,則返回 True,否則返回 False。
  • isspace()

      如果字串中只包含空白,則返回 True,否則返回 False。
  • istitle()

      如果字串是標題化的(見 title())則返回 True,否則返回 False。
  • isupper()

      如果字串中包含至少一個區分大小寫字元,並且所有這些(區分大小寫)字元都是大寫,則返回 True,否則返回 False。
  • join(seq)

      以指定字串作為分隔字元,將 seq 中所有的元素(的字串表示)合并為一個新的字串。
  • len(string)

      返回字串長度。
  • ljust(width[, fillchar])

      返回一個原字串靠左對齊,並使用 fillchar 填充至長度 width 的新字串,fillchar 預設為空白格。
  • lower()

      轉換字串中所有大寫字元為小寫。
  • lstrip()

      截掉字串左邊的空格或指定字元。
  • max(str)

      返回字串 str 中最大的字母。
  • min(str)

      返回字串 str 中最小的字母。
  • replace(old, new [, max])

      把將字串中的 str1 替換成 str2,如果 max 指定,則替換不超過 max 次。
  • rfind(str, beg=0,end=len(string))

      類似於 find()函數,不過是從右邊開始尋找。
  • rindex( str, beg=0, end=len(string))

      類似於 index(),不過是從右邊開始。
  • rjust(width,[, fillchar])

      返回一個原字串靠右對齊,並使用fillchar(預設空格)填充至長度 width 的新字串。
  • rstrip()

      刪除字串字串末尾的空格。
  • split(str="", num=string.count(str))

      num=string.count(str)) 以 str 為分隔字元截取字串,如果 num 有指定值,則僅截取 num 個子字串。
  • splitlines([keepends])

      按照行(‘\r‘, ‘\r\n‘, \n‘)分隔,返回一個包含各行作為元素的列表,如果參數 keepends 為 False,不包含分行符號,如果為 True,則保留分行符號。
  • strip([chars])

      在字串上執行 lstrip()和 rstrip()。
  • swapcase()

      將字串中大寫轉換為小寫,小寫轉換為大寫。
  • title()

      返回"標題化"的字串,就是說所有單詞都是以大寫開始,其餘字母均為小寫(見 istitle())。
  • upper()

      轉換字串中的小寫字母為大寫。
  • zfill (width)

      返回長度為 width 的字串,原字串靠右對齊,前面填充0。
  • isdecimal()

      檢查字串是否只包含十進位字元,如果是返回 true,否則返回 false。

 

 

 

  

  

Day 3 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.