python基礎教程總結2——字串

來源:互聯網
上載者:User

標籤:

1.基本操作

  序列操作:索引,分區,乘法,判斷成員資格,長度,最值......

註:字串不可變,分區賦值不合法

 

2.字串格式化

模板

  格式化字串時,Python使用一個字串作為模板。模板中有格式符,這些格式符為真實值預留位置,並說明真實數值應該呈現的格式。Python用一個tuple將多個值傳遞給模板,每個值對應一個格式符。

print("I‘m %s. I‘m %d year old" % (‘Vamei‘, 99))

  "I‘m %s. I‘m %d year old" 為我們的模板。%s為第一個格式符,表示一個字串。%d為第二個格式符,表示一個整數。(‘Vamei‘, 99)的兩個元素‘Vamei‘和99為替換%s和%d的真實值。 
  在模板和tuple之間,有一個%號分隔,它代表了格式化操作。

  整個"I‘m %s. I‘m %d year old" % (‘Vamei‘, 99) 實際上構成一個字串運算式。我們可以像一個正常的字串那樣,將它賦值給某個變數。比如:

a = "I‘m %s. I‘m %d year old" % (‘Vamei‘, 99)print(a)

 

我們還可以用詞典來傳遞真實值。如下:

print("I‘m %(name)s. I‘m %(age)d year old" % {‘name‘:‘Vamei‘, ‘age‘:99})

可以看到,我們對兩個格式符進行了命名。命名使用()括起來。每個命名對應詞典的一個key。

 

格式符

格式符為真實值預留位置,並控制顯示的格式。格式符可以包含有一個類型碼,用以控制顯示的類型,如下:

%s    字串 (採用str()的顯示)

%r    字串 (採用repr()的顯示)

%c    單個字元

%b    二進位整數

%d    十進位整數

%i    十進位整數

%o    八進位整數

%x    十六進位整數

%e    指數 (基底寫為e)

%E    指數 (基底寫為E)

%f    浮點數

%F    浮點數,與上相同

%g    指數(e)或浮點數 (根據顯示長度)

%G    指數(E)或浮點數 (根據顯示長度)

 

%%    字元"%"

 

可以用如下的方式,對格式進行進一步的控制:

  %[(name)][flags][width].[precision]typecode

  (name)為命名

  flags可以有+,-,‘ ‘或0。+表示靠右對齊。-表示靠左對齊。‘ ‘為一個空格,表示在正數的左側填充一個空格,從而與負數對齊。0表示使用0填充。

  width表示顯示寬度

  precision表示小數點後精度

print("%+10x" % 10)print("%04d" % 5)print("%6.3f" % 2.3)

上面的width, precision為兩個整數。我們可以利用*,來動態代入這兩個量。比如:

print("%.*f" % (4, 1.2))

Python實際上用4來替換*。所以實際的模板為"%.4f"。

 

3.字串方法

(1)、find

  find方法可以在一個較長的字串中尋找子字串。它返回子串所在位置的最左端索引。如果沒有找到則返回-1。

 

(2)、join

  文法:  ‘sep‘.join(seq)

  參數說明:

      以sep作為分隔字元,將seq所有的元素合并成一個新的字串
      sep:分隔字元。可以為空白
      seq:要串連的元素序列、字串、元組、字典

  傳回值:返回一個以分隔字元sep串連各個元素後產生的字串

  join方法是非常重要的字串方法,它是split方法的逆方法,用來在隊列中添加元素:

  注意:需要添加的隊列元素都必須是字串。

>>> s = [‘1‘, ‘2‘, ‘3‘]
>>> ‘+‘.join(s)
‘1+2+3‘

 

(3)、lower

  lower方法返回字串的小寫字母片。

 

(4)、replace

    stringObj.replace(rgExp, replaceText)

  replace方法返回某個字串的所有匹配項均被替換之後得到的字串。

>>> ‘This is a test‘.replace(‘is‘, ‘eez‘)
‘Theez eez a test‘

 

(5)、split

  這是個非常重要的字串方法,它是join的逆方法,用來將字串分割成序列。

>>> ‘1+2+3+4‘.split(‘+‘)
[‘1‘, ‘2‘, ‘3‘, ‘4‘]
>>> ‘1 2 3 4‘.split()
[‘1‘, ‘2‘, ‘3‘, ‘4‘]

  如果不提供任何分隔字元,程式會把所有空格作為分隔字元(空格、製表、換行等)。

 

(6)、strip

函數原型

  聲明:s為字串,rm為要刪除的字元序列

    s.strip(rm)        刪除s字串中開頭、結尾處,位於 rm刪除序列的字元

    s.lstrip(rm)       刪除s字串中開頭處,位於 rm刪除序列的字元

    s.rstrip(rm)      刪除s字串中結尾處,位於 rm刪除序列的字元

注意:

  1). 當rm為空白時,預設刪除空白符(包括‘\n‘, ‘\r‘,  ‘\t‘,  ‘ ‘)

 

>>> a = ‘     123‘
>>> a.strip()
‘123‘
>>> a=‘\t\tabc‘
‘abc‘
>>> a = ‘sdff\r\n‘
>>> a.strip()
‘sdff‘

  2).這裡的rm刪除序列是只要邊(開頭或結尾)上的字元在刪除序列內,就刪除掉。

>>> a = ‘123abc‘
>>> a.strip(‘21‘)
‘3abc‘   結果是一樣的
>>> a.strip(‘12‘)
‘3abc‘ 

 

(7)、translate

  translate方法和replace方法一樣,可以替換字串中的某些部分,但是和前者不同的是,translate方法只處理單個字元。它的優勢在於可以同時進行多個替換,有些時候比replace效率高得多。

  在使用translate轉換前,需要先完成一張轉換表。轉換表中是以某字元替換某字元的對應關係。因為這個表(事實上是字串)有多達256個項目,我們還是不要自己寫了,用string模組裡面的maketrans函數就行了。

  maketrans函數接收兩個參數:兩個等長的字串,表示第一個字串中的每個字元都用第二個字串中相同位置的字元替換。

>>> from string import maketrans
>>> table = maketrans(‘cs‘, ‘kz‘)

  建立這個表後,可以將它用作translate方法的參數,進行字串的轉換:

>>> ‘this is an incredible test‘.translate(table)
‘thiz iz an inkredible tezt‘

  translate的第二個參數是可選的,這個參數是用來指定需要刪除的字元。

>>> ‘this is an incredible test‘.translate(table, ‘ ‘)
‘thizizaninkredibletezt‘

python基礎教程總結2——字串

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.