python求列表最大值下标_切片,丝滑的字符串 | Python基础连载(三)
開篇
之前已經(jīng)提到過,在Python中,一共有六大數(shù)據(jù)類型
本期就開始學(xué)習(xí)Python的六個(gè)標(biāo)準(zhǔn)數(shù)據(jù)類型中的字符串。
什么是字符串
在Python中,字符串是用一對(duì)引號(hào)(單引號(hào)/雙引號(hào)均可)包裹起來的一串字符,比如之前你見到的'Hello World !'便是一個(gè)字符串。
下面再給出幾個(gè)字符串的栗子:
Python提供了type()函數(shù)用于查詢某個(gè)變量的數(shù)據(jù)類型,在上圖中,數(shù)據(jù)類型名字后面的英文就是該數(shù)據(jù)類型所對(duì)應(yīng)的type()函數(shù)返回值,()內(nèi)填寫的是你要查看的變量名。
接著上面的栗子,現(xiàn)在我要查看一下這些變量所保存元素的數(shù)據(jù)類型(不能你說是字符串就是字符串吧,我要親自動(dòng)手驗(yàn)證一下,嘿嘿)
驗(yàn)證完畢,返回值是str,是字符串無誤!
注意,一個(gè)單個(gè)的字符也是字符串:
>>>?ch='u'>>>?type(ch)你可能會(huì)好奇,這里出現(xiàn)的函數(shù),返回值和class是什么鬼。不要著急,后面會(huì)講到,現(xiàn)在你只要會(huì)用type()來查看一個(gè)變量的數(shù)據(jù)類型就達(dá)到足夠了
如何選取字符串中的某些元素(重點(diǎn))
首先要說明的是,Python的下標(biāo)(也稱索引)是從0開始的,這和大部分編程語言是一致的。
下面這張圖清晰的展示了下標(biāo)與元素位置的關(guān)系:字符串'Python'的長(zhǎng)度是6,下標(biāo)的最大值是5,正好差1。
現(xiàn)在,將字符串'Python'存入變量s :
s='Python'如果想要獲取中的某一個(gè)字符,直接使用s[下標(biāo)]即可:
注意,如果你給的下標(biāo)值超出了字符串的下標(biāo)最大值,則會(huì)報(bào)錯(cuò),就像下面這樣:
知道了如何選取字符串中的某一特定下標(biāo)處的元素之后,你可能又會(huì)想:我能不能一次選取好幾個(gè)元素呢?
當(dāng)然可以!
Python的切片便是用來做這件事情的。
切片語法如下:
s[start:end:step]解釋一下:s是一個(gè)存儲(chǔ)了字符串的變量名,start和end分別代表了切片的開始位置下標(biāo)和結(jié)束位置下標(biāo)+1,step是步長(zhǎng),如果不寫step,那就用默認(rèn)值1。(【注】Python規(guī)定,step不能為0,這一點(diǎn)記住就好,無需深究。)
下面的栗子可以讓你更好的理解上面所說:
>>>?s='Great?Python'>>>?s[0:3] #start=0,end=3,所以區(qū)間為[0,2]'Gre'這里,從下標(biāo)為0的位置元素開始,一直到下標(biāo)為2的位置結(jié)束,由于我們沒有寫step,所以使用默認(rèn)值1,也就是一步一步地向前走(規(guī)范化地表述是:從start開始,以1為步長(zhǎng),向end方向掃描)。
最終將下標(biāo)區(qū)間[0,2]位置的所有元素選取出來。
一個(gè)比較好的記憶方式是:start和end組成的區(qū)間是左閉右開的。
如果我們更改了步長(zhǎng),又會(huì)怎樣?看下面的栗子:
>>>?s="Great?Python">>>?s[0:9:2]'GetPt'這一次設(shè)置了步長(zhǎng)為2,選取的下標(biāo)范圍是0到8。
s[0:9:2]所做的事情如下(結(jié)合上圖來理解):
第一次選取下標(biāo)為`0`處的元素`G`接下來走`2`步,到達(dá)下標(biāo)`2`?第二次選取下標(biāo)為`2`處的元素`e`接下來走`2`步,到達(dá)下標(biāo)`4`第三次選取下標(biāo)為`4`處的元素`t`接下來走`2`步,到達(dá)下標(biāo)`6`第四次選取下標(biāo)為`6`處的元素`P`接下來走`2`步,到達(dá)下標(biāo)`8`第五次選取小標(biāo)為`8`處的元素`t`由于已經(jīng)走到了區(qū)間最右側(cè),所以不再繼續(xù)走。至此,選取結(jié)束,返回由G、e、t、P、t組成的字符串'GetPt' 。
相信通過以上詳細(xì)的講解,你已經(jīng)學(xué)會(huì)了使用字符串中簡(jiǎn)單的切片語法。
還有一件更神奇的事情:下標(biāo)可以為負(fù)數(shù)!
你可能會(huì)問:下標(biāo)為負(fù)數(shù)的話不是沒有對(duì)應(yīng)元素了嘛?就像下面這樣:
事實(shí)不是這樣的!
負(fù)數(shù)索引,指的是從最后一個(gè)元素開始,往前數(shù)(也就是倒著數(shù),比如-1代表倒數(shù)第一個(gè))。所以下面這張圖才是正確的:
繼續(xù)之前的栗子(仔細(xì)看注釋哦):
>>>?s='Python'>>>?s[-1]#選取倒數(shù)第一個(gè)元素'n'>>>?s[-2]#選取倒數(shù)第二個(gè)元素'o'>>>?s[-123]#不存在倒數(shù)第123個(gè)元素,所以報(bào)錯(cuò)Traceback?(most?recent?call?last):??File?"",?line?1,?in?????s[-123]IndexError:?string?index?out?of?range對(duì)于切片操作同理,這里給出幾個(gè)栗子:
>>>?s="Great?Python">>>?s[-3:-1]#注意區(qū)間左閉右開'ho'>>>?s[-5:-1:2]#注意區(qū)間左閉右開'yh'如果仔細(xì)觀察,你會(huì)發(fā)現(xiàn),上面所有的栗子中,start都是小于end的,那能不能出現(xiàn)start>end呢?
答案是可以!但同時(shí)需要將步長(zhǎng)step設(shè)置為負(fù),否則選取到的結(jié)果一定是空!
>>>?s='Graet?Python'>>>?s[4:1]#未設(shè)置步長(zhǎng),采用默認(rèn)值1(正),結(jié)果為空''>>>?s[-1:-4]#未設(shè)置步長(zhǎng),采用默認(rèn)值1(正),結(jié)果為空''>>>?s[-1:-4:2]#步長(zhǎng)為2(正),結(jié)果為空''>>>?s[4:1:-1]#設(shè)置了步長(zhǎng)為-1(負(fù))'tea'>>>?s[-1:-6:-2]#設(shè)置了步長(zhǎng)為-2(負(fù))'nhy'更多字符串操作
定義一個(gè)字符串:
s='Hello?World'1.求字符串長(zhǎng)度:使用len()函數(shù)
>>>?s='Hello?World'>>>?len(s)112.選取全部元素
#方法1>>>?s[0:len(s)]'Hello?World'#方法2:`切片`特有的操作>>>?s[::]'Hello?World'3.選取倒序的全部元素
#`切片`特有的操作>>>?s[::-1]'dlroW?olleH'附
本期內(nèi)容到這里就結(jié)束了,關(guān)于字符串的用法還沒有講完,剩余內(nèi)容將在下期介紹。
在結(jié)束之前,簡(jiǎn)單介紹一下print()。
print()用于正如其名,用于輸出結(jié)果到屏幕上。
將'Hello World!'輸出到屏幕上,只需將這個(gè)字符串放進(jìn)()內(nèi),運(yùn)行即可:
>>>?print('Hello?World!')Hello?World!()內(nèi)也可以放入變量:
>>>?s='Hello?World!'>>>?print(s)Hello?World!明天的內(nèi)容有些多,要做好準(zhǔn)備哦~
大家加油!有問題留言區(qū)見。
本文首發(fā)于微信公眾號(hào):我將在南極找尋你
總結(jié)
以上是生活随笔為你收集整理的python求列表最大值下标_切片,丝滑的字符串 | Python基础连载(三)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度模糊搜索怎么实现_百度搜索广告是什么
- 下一篇: time库是python中处理时间的标准