跟老齊學(xué)Python之玩轉(zhuǎn)字符串(3)
字符串就是一個話題中心。
給字符串編號
在很多很多情況下,我們都要對字符串中的每個字符進(jìn)行操作(具體看后面的內(nèi)容),要準(zhǔn)確進(jìn)行操作,必須做的一個工作就是把字符進(jìn)行編號。比如一個班里面有50名學(xué)生,如果這些學(xué)生都有學(xué)號,老師操作他們將簡化很多。比如不用專門找每個人名字,直接通過學(xué)號知道誰有沒有交作業(yè)。
在python中按照這樣的順序?qū)ψ址M(jìn)行編號:從左邊第一個開始是0號,向下依次按照整數(shù)增加,為1、2...,直到最后一個,在這個過程中,所有字符,包括空格,都進(jìn)行變好。例如:
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
在班級了,老師只要喊出學(xué)生的學(xué)號,自動有對應(yīng)的學(xué)生站起來。在python里面如何把某個編號所對應(yīng)的字符調(diào)出來呢?看代碼:
>>> a = "Hello,wor ld" >>> len(a) #字符串的長度是12,說明公有12個字符,最后一個字符編號是11 12 >>> a[0] 'H' >>> a[3] 'l' >>> a[9] ' ' >>> a[11] 'd' >>> a[5] ','
特別說明,編號是從左邊開始,第一個是0。
能不能從右邊開始編號呢?可以。這么人見人愛的python難道這點(diǎn)小要求都不滿足嗎?
>>> a[-1] 'd' >>> a[11] 'd' >>> a[-12] 'H' >>> a[-3] ' '
看到了嗎?如果從右邊開始,第一個編號是-1,這樣就跟從左邊區(qū)分開了。也就是a[-1]和a[11]是指向同一個字符。
不管從左邊開始還是從右邊開始,都能準(zhǔn)確找到某個字符??垂傧矚g從哪邊開始就從哪邊開始,或者根據(jù)實(shí)際使用情況,需要從哪邊開始就從哪邊開始。
字符串截取
有了編號,不僅僅能夠找出某個字符,還能在字符串中取出一部分來。比如,從“hello,wor ld”里面取出“l(fā)lo”??梢赃@樣操作
>>> a[2:5] 'llo'
這就是截取字符串的一部分,注意:所截取部分的第一個字符(l)對應(yīng)的編號是(2),從這里開始;結(jié)束的字符是(o),對應(yīng)編號是(4),但是結(jié)束的編號要增加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]前結(jié)束 'Hell'
去掉字符串兩頭的空格
這個功能,在讓用戶輸入一些信息的時候非常有用。有的朋友喜歡輸入結(jié)束的時候敲擊空格,比如讓他輸入自己的名字,輸完了,他來個空格。有的則喜歡先加一個空格,總做的輸入的第一個字前面應(yīng)該空兩個格。
好吧,這些空格是沒用的。python考慮到有不少人可能有這個習(xí)慣,因此就幫助程序員把這些空格去掉。
方法是:
S.strip() 去掉字符串的左右空格
S.lstrip() 去掉字符串的左邊空格
S.rstrip() 去掉字符串的右邊空格
看官在看下面示例之前,請先自己用上面的內(nèi)置函數(shù),是否可以?
>>> b=" hello " >>> b ' hello ' >>> b.strip() 'hello' >>> b ' hello ' >>> b.lstrip() 'hello ' >>> b.rstrip() ' hello'
練習(xí)
學(xué)編程,必須做練習(xí),通過練習(xí)熟悉各種情況下的使用。
下面共同做一個練習(xí):輸入用戶名,計(jì)算機(jī)自動向這個用戶打招呼。代碼如下:
#coding:utf-8 print "please write your name:" name=raw_input() print "Hello,%s"%name
這段代碼中的raw_input()的含義,就是要用戶輸入內(nèi)容,所輸入的內(nèi)容是一個字符串。
其實(shí),上面這段代碼存在這改進(jìn)的地方,比如,如果用戶輸入的是小寫,是不是要將名字的首字母變成大寫呢?如果有空格,是不是要去掉呢?等等?;蛟S還有別的,看看能不能在這個練習(xí)中,將以前學(xué)習(xí)過的東西綜合應(yīng)用一下?
相關(guān)文章
python對文件目錄的操作方法實(shí)例總結(jié)
這篇文章主要介紹了python對文件目錄的操作方法,結(jié)合實(shí)例形式總結(jié)分析了Python針對文件目錄相關(guān)的遍歷、刪除、移動、查找等操作技巧,需要的朋友可以參考下2019-06-06Python Pandas數(shù)據(jù)中對時間的操作
這篇文章主要介紹了Python Pandas數(shù)據(jù)中對時間的操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07深入解析Python?3中Hash鍵值存儲的優(yōu)勢與應(yīng)用
這篇文章主要介紹了深入解析Python?3中Hash鍵值存儲的優(yōu)勢與應(yīng)用的相關(guān)資料,需要的朋友可以參考下2023-11-11一文掌握python中的__init__的意思及使用場景分析
__init__是構(gòu)造方法,誰調(diào)用,表示誰(更直觀的理解就是類的方法中,誰調(diào)用,表示誰,見下面第一個代碼)!!并不是必選項(xiàng),也就是說在類中,這個不是必須用的,那什么場景需要用到,什么場景不需要用到呢,感興趣的朋友跟隨小編一起看看吧2023-02-02使用Python的Flask框架構(gòu)建大型Web應(yīng)用程序的結(jié)構(gòu)示例
雖說Flask是一個以輕量級著稱的框架,但也為大型Web應(yīng)用提供了諸如單元測試與數(shù)據(jù)庫遷移等許多便利的功能,這里我們來看一下使用Python的Flask框架構(gòu)建大型Web應(yīng)用程序的結(jié)構(gòu)示例:2016-06-06Python的Matplotlib庫圖像復(fù)現(xiàn)學(xué)習(xí)
這篇文章主要給大家介紹了關(guān)于如何利用Matplotlib庫圖像復(fù)現(xiàn),matplotlib模塊提供了很高級和非常友好的使用方式,使用起來也是非常方便的,需要的朋友可以參考下2021-08-08