玩轉字串(3)

來源:互聯網
上載者:User

標籤:python   零基礎   字串   

字串是一個很長的話題,縱然現在開始第三部分,但是也不能完全說盡。因為字串是自然語言中最複雜的東西,也是承載功能最多的,電腦進階語言編程,要解決自然語言中的問題,讓自然語言中完成的事情在電腦上完成,所以,也不得不有更多的話題。

字串就是一個話題中心。


給字串編號
在很多很多情況下,我們都要對字串中的每個字元進行操作(具體看後面的內容),要準確進行操作,必須做的一個工作就是把字元進行編號。比如一個班裡面有50名學生,如果這些學生都有學號,老師操作他們將簡化很多。比如不用專門找每個人名字,直接通過學號知道誰有沒有交作業。

在python中按照這樣的順序對字串進行編號:從左邊第一個開始是0號,向下依次按照整數增加,為1、2...,直到最後一個,在這個過程中,所有字元,包括空格,都進行變好。例如:

Hello,wor ld

對於這個字串,從左向右的變好依次是:

0 1 2 3 4 5 6 7 8 9 10 11
H e l l o , w o r   l d

在班級了,老師只要喊出學生的學號,自動有對應的學生站起來。在python裡面如何把某個編號所對應的字元調出來呢?看代碼:

>>> a = "Hello,wor ld">>> len(a)      #字串的長度是12,說明公有12個字元,最後一個字元編號是1112>>> a[0]'H'>>> a[3]'l'>>> a[9]' '>>> a[11]'d'>>> a[5]','

特別說明,編號是從左邊開始,第一個是0。

能不能從右邊開始編號呢?可以。這麼人見人愛的python難道這點小要求都不滿足嗎?

>>> a[-1]'d'>>> a[11]'d'>>> a[-12]'H'>>> a[-3]' '

看到了嗎?如果從右邊開始,第一個編號是-1,這樣就跟從左邊區分開了。也就是a[-1]和a[11]是指向同一個字元。

不管從左邊開始還是從右邊開始,都能準確找到某個字元。看官喜歡從哪邊開始就從哪邊開始,或者根據實際使用方式,需要從哪邊開始就從哪邊開始。


字串截取


有了編號,不僅僅能夠找出某個字元,還能在字串中取出一部分來。比如,從“hello,wor ld”裡面取出“llo”。可以這樣操作

>>> a[2:5]'llo'

這就是截取字串的一部分,注意:所截取部分的第一個字元(l)對應的編號是(2),從這裡開始;結束的字元是(o),對應編號是(4),但是結束的編號要增加1,不能是4,而是5.這樣截取到的就是上面所要求的了。

試一試,怎麼截取到",wor"

也就是說,截取a[n,m],其中n<m,得到的字元是從a[n]開始到a[m-1]

有幾個比較特殊的

>>> a[:]    #表示截取全部'Hello,wor ld'>>> a[3:]   #表示從a[3]開始,一直到字串的最後'lo,wor ld'>>> a[:4]   #表示從字串開頭一直到a[4]前結束'Hell'

去掉字串兩頭的空格

這個功能,在讓使用者輸入一些資訊的時候非常有用。有的朋友喜歡輸入結束的時候敲擊空格,比如讓他輸入自己的名字,輸完了,他來個空格。有的則喜歡先加一個空格,總做的輸入的第一個字前面應該空兩個格。

好吧,這些空格是沒用的。python考慮到有不少人可能有這個習慣,因此就協助程式員把這些空格去掉。

方法是:

  • S.strip() 去掉字串的左右空格
  • S.lstrip() 去掉字串的左邊空格
  • S.rstrip() 去掉字串的右邊空格

看官在看下面樣本之前,請先自己用上面的內建函數,是否可以?

>>> b=" hello ">>> b' hello '>>> b.strip()'hello'>>> b' hello '>>> b.lstrip()'hello '>>> b.rstrip()' hello'

練習


學編程,必須做練習,通過練習熟悉各種情況下的使用。

下面共同做一個練習:輸入使用者名稱,電腦自動向這個使用者打招呼。代碼如下:

#coding:utf-8print "please write your name:"name=raw_input()print "Hello,%s"%name

這段代碼中的raw_input()的含義,就是要使用者輸入內容,所輸入的內容是一個字串。

其實,上面這段代碼存在這改進的地方,比如,如果使用者輸入的是小寫,是不是要將名字的首字母變成大寫呢?如果有空格,是不是要去掉呢?等等。或許還有別的,看看能不能在這個練習中,將以前學習過的東西綜合應用一下?

聲明:

因為種種原因,這裡不能發連結等,設定莫名其妙地發布出去。到底為什嗎?網站方從來沒有解釋。我也懶得計較這個了。以後看官只需要到完美版上看好了。完美版的地址在左邊。

玩轉字串(3)

聯繫我們

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