零基礎學習 Python 之字串

2022-05-30 01:30:15 字數 3580 閱讀 2423

維基百科對於字串的定義式:字串是由零個或者多個字元組成的有限序列。你之前學會敲的第一行 print **裡的 「hello world」,就是乙個字串。字串的本質就是一串字元,不管是中文還是英文抑或是空格等特殊字元都可以作為字串來看待。

>>> 'good good study'

'good good study'

>>> "day day up"

'day day up'

上面我說到字串和數字都是一種物件型別,那麼在上篇文章中我們說數字可以有變數指向它,那麼字串當然也可以。

>>> string = 'hello world'

>>> string

'hello world'

>>> print(string)

hello world

如果我有兩個字串,分別是 'hello' 和 'world',那麼我想得到 'hello world' 那可咋整?別怕,python 裡提供了特別簡單的辦法,那就是相加,就是你們知道的那個加減乘除的那個加。

>>> a = 'hello'

>>> b = 'world'

>>> a + b

'helloworld'

>>> a + ' ' + b

'hello world'

但是相加只是限同種型別的,比如字串和字串相加,數字和數字相加,字串和數字不可以,會報錯。

這裡再多說一點,字串其實還可以乘,看下面的例子就知道怎麼用了:

>>> string = 'python'

>>> string * 3

'pythonpythonpython'

就至此為止了,減和除你們就不用想了。

什麼時候能用到轉義字元呢?下面我們看乙個例子:

>>> 'what's your name'

file "", line 1

'what's your name'

^syntaxerror: invalid syntax

為什麼會報錯呢?眼尖的朋友們可能已經看出來了,字串裡有三個單引號,這樣直譯器就尷尬了,不知道單引號包裹的到底是誰,所以只好報錯了。那麼有什麼解決辦法呢?一種是用 雙引號包裹整個字串,另乙個就是要用到我們接下來要說的轉義字元了。

原始字串就是字串裡的每個字母都是自己原汁原味的,我們 \n 就是 \n ,不是換行符。一種方法就是用上述的轉譯字元,此外在這還有一種方法,就是在字串前面加個 r:

>>> string = "c:\now"

>>> print(string)

c:ow

>>> print(r'c:\now')

c:\now

我們在本篇文章剛開始的時候字串由多個字元構成,那麼在 python 中如何操作每個字元,這裡就用到索引和切片。

索引的話其實是起的乙個比較高階的名字,其實就是編號,就像考完試的名次一樣,這個不是 python 所特有的,其他的程式語言也是這麼叫。

>>> string = 'i love python'

>>> string[0]

'i'>>> string[5]

'e'

要想得到第乙個字元,就用 string[0],以後依次類推,它和我們現實中的排名不同的是,它是從 0 開始的,你還記得麼?空格等特殊的也是字元,所以它們也是有編號的,這是正向的表示,在 python 中,字串的索引還可以倒著表示,從最後乙個開始 分別是 -1,-2,-3.....

然後人總是不滿足的,我可以通過索引乙個乙個的找出字元來,那我想找其中的乙個子串怎麼辦?這時候我們的切片就閃亮登場了。如果我想得到 love 這個子串怎麼辦?具體的操作請見下面的例子:

>>> string = 'i love python'

>>> string[2:6]

'love'

因為 l 的索引是 2,e 的索引是5,所以我們可以看出來切片的作用區間是左閉右開的,即[2, 6)。這裡還有一點要說的是,字串的切片對原字串沒有影響,不會改變它。

切片還有很多有意思的操作,可以切的多姿多彩:

>>> string = 'i love python'

>>> a = string[3:] #得到從3號到最後的字串

>>> a

'ove python'

>>> b = string[:8] #得到從第1個字元到第7個字元

>>> b

'i love p'

>>> c = string[:] #得到所有的字元

>>> c

'i love python'

是不是覺得很有意思呢?切片的寫法還有很多,比如如果是倒序的話我該怎麼在切片裡表示?有興趣的可以自己去嘗試。

python 中的格式化和我們所熟知的對磁碟中的分割槽進行初始化是不一樣的概念,我們這裡說的是對字串的格式化,所謂字串的格式化就是我們先定義乙個模板,然後在這個模板的一處或者幾處地方留出空位來,然後在那些空位上填上符合設定條件的字串,並顯示結果,這些留出來的空位我們稱為佔位符。下面我用具體的例子來說明。

>>> 'i love %s' #這裡的 %s 就是乙個佔位符

'i love %s'

>>> 'i love %s' %'python'

'i love python'

>>> 'i love  and '.format('c++','python')

'i love c++ and python'

在 format 裡面 , 就成了佔位符,然後不要忘了字串和 format 中間那個很重要的英文句號。

字串裡的方法有很多,可以通過 dir(str)檢視,這麼多的方法我不會在這一一介紹,如果想使用的話,可以使用 help() 檢視,這裡僅僅列舉幾個常用的。

>>> string = 'i love python'

>>> string.find('ov') #檢查 str 是否在 string 裡面

3>>> string.index('l')

2>>> string.count('i',0,5)

1

我這裡就隨便演示了前三個,當然字串的方法不只這些,這些函式在互動模式裡很好實現,如果沒事的話可以隨時看幾個,在互動模式裡按照我上面的樣子自己動手試試,這樣在用到某個方法的時候才能想起來有,否則的話再自己去寫很多**去實現本身就存在的方法,很是浪費時間。

零基礎學習 Python 之字串

維基百科對於字串的定義式 字串是由零個或者多個字元組成的有限序列。你之前學會敲的第一行 print 裡的 hello world 就是乙個字串。字串的本質就是一串字元,不管是中文還是英文抑或是空格等特殊字元都可以作為字串來看待。good good study good good study day ...

Python零基礎 字串

什麼是字串?字串 字串 用符號括起來的 eg s type s s type s s type s s type s 字串常見的方法 字串可以被迭代,也可以通過下標訪問 注意 字串是不可變型別 python中字串的所有方法,並不會改動字串本身的值!而是返回值發生了變化 1.capitalize 首字...

零基礎學python 玩轉字串 2

a py b thon a b python 既然這是一種方法,言外之意,還有另外一種方法。根據這個定義,在python裡面規定了一些佔位符,通過這些佔位符來說明那個位置應該填寫什麼型別的東西,這裡暫且了解兩個佔位符 d 表示那個位置是整數,s 表示那個位置應該是字串。下面看乙個具體例項 print...