自學(xué)Python編程【第二十六節(jié)】字符串的分割
哈嘍,同學(xué)們!上一節(jié)我們講了list切片的相關(guān)內(nèi)容,你都學(xué)會(huì)了嗎?還記得L[:2]會(huì)輸出什么嗎?不知道的話要盡快回顧復(fù)習(xí)上一節(jié)課程的內(nèi)容哦!這節(jié)課我們來學(xué)習(xí)字符串的分割的相關(guān)知識(shí),想要Python入門和Python學(xué)習(xí)的小伙伴可要好好看看啦~
字符串和list之間有很多不得不說的事。比如有同學(xué)想要用Python去自動(dòng)抓取某個(gè)網(wǎng)頁上的下載鏈接,那就需要對(duì)網(wǎng)頁的代碼進(jìn)行處理。處理的過程中,免不了要在字符串和list之間進(jìn)行很多操作。
我們先從最基本的開始。假設(shè)你現(xiàn)在拿到了一個(gè)英語句子,需要把這個(gè)句子中的每一個(gè)單詞拿出來單獨(dú)處理。
sentence = 'I am an Englist sentence'
這時(shí)就需要對(duì)字符串進(jìn)行分割。
sentence.split()
split()會(huì)把字符串按照其中的空格進(jìn)行分割,分割后的每一段都是一個(gè)新的字符串,最終返回這些字符串組成一個(gè)list。于是得到
['I', 'am', 'an', 'Englist', 'sentence']
原來字符串中的空格不再存在。
除了空格外,split()同時(shí)也會(huì)按照換行符\n,制表符\t進(jìn)行分割。所以應(yīng)該說,split默認(rèn)是按照空白字符進(jìn)行分割。
之所以說默認(rèn),是因?yàn)閟plit還可以指定分割的符號(hào)。比如你有一個(gè)很長的字符串
section = 'Hi. I am the one. Bye.'
通過指定分割符號(hào)為'.',可以把每句話分開
section.split('.')
得到
['Hi', ' I am the one', ' Bye', '']
這時(shí)候,'.'作為分割符被去掉了,而空格仍然保留在它的位置上。
注意最后那個(gè)空字符串。每個(gè)'.'都會(huì)被作為分割符,即使它的后面沒有其他字符,也會(huì)有一個(gè)空串被分割出來。例如
'aaa'.split('a')
將會(huì)得到['', '', '', ''],由四個(gè)空串組成的list。
既然有把字符串分割成list,那也相應(yīng)就有把list連接成字符串,這個(gè)明天說。
精彩案例—— 點(diǎn)球小游戲
在昨天代碼的基礎(chǔ)上,我們加上勝負(fù)判斷,如果5輪結(jié)束之后是平分,就繼續(xù)踢。
所以我們把一輪的過程單獨(dú)拿出來作為一個(gè)函數(shù)kick,在5次循環(huán)之后再加上一個(gè)while循環(huán)。
另外,這里把之前的score_you和score_com合并成了一個(gè)score數(shù)組。這里的原因是,要讓kick函數(shù)里用到外部定義的變量,需要使用全局變量的概念。暫時(shí)想避免說這個(gè),而用list不存在這個(gè)問題。
from random import choice
score = [0, 0]
direction = ['left', 'center', 'right']
def kick():
print '==== You Kick! ===='
print 'Choose one side to shoot:'
print 'left, center, right'
you = raw_input()
print 'You kicked ' + you
com = choice(direction)
print 'Computer saved ' + com
if you != com:
print 'Goal!'
score[0] += 1
else:
print 'Oops...'
print 'Score: %d(you) - %d(com)\n' % (score[0], score[1])
print '==== You Save! ===='
print 'Choose one side to save:'
print 'left, center, right'
you = raw_input()
print 'You saved ' + you
com = choice(direction)
print 'Computer kicked ' + com
if you == com:
print 'Saved!'
else:
print 'Oops...'
score[1] += 1
print 'Score: %d(you) - %d(com)\n' % (score[0], score[1])
for i in range(1):
print '==== Round %d ====' % (i+1)
kick()
while(score[0] == score[1]):
i += 1
print '==== Round %d ====' % (i+1)
kick()
if score[0] > score[1]: print 'You Win!'
else:
print 'You Lose.'
恭喜你在Python自學(xué)的道路上又堅(jiān)持了一天,今天我們所講述的字符串的分割你學(xué)會(huì)了嗎?split(),默認(rèn)以空格為分割界限,當(dāng)然你還可以指定分割條件,將條件寫到()中就可以了,你學(xué)會(huì)了嗎?更多Python相關(guān)的內(nèi)容盡在馬哥Python培訓(xùn)機(jī)構(gòu)官網(wǎng),敬請(qǐng)關(guān)注!
好啦,今天的分享到這里就結(jié)束了,希望大家能夠持續(xù)關(guān)注馬哥教育官網(wǎng),每天都會(huì)有大量優(yōu)質(zhì)內(nèi)容與大家分享!
聲明:文章來源于網(wǎng)絡(luò),侵刪!