上一章中已經(jīng)講到連接兩個(gè)字符串的一種方法。復(fù)習(xí)一下:
>>> a= 'py'
>>> b= 'thon'
>>> a+b
'python'
既然這是一種方法,言外之意,還有另外一種方法。
連接字符串的方法2
在說方法2之前,先說明一下什么是占位符,此前在講解變量(參數(shù))的時(shí)候,提到了占位符,這里對(duì)占位符做一個(gè)比較嚴(yán)格的定義:
來(lái)自百度百科的定義:
顧名思義,占位符就是先占住一個(gè)固定的位置,等著你再往里面添加內(nèi)容的符號(hào)。
根據(jù)這個(gè)定義,在python里面規(guī)定了一些占位符,通過這些占位符來(lái)說明那個(gè)位置應(yīng)該填寫什么類型的東西,這里暫且了解兩個(gè)占位符:%d――表示那個(gè)位置是整數(shù),%s――表示那個(gè)位置應(yīng)該是字符串。下面看一個(gè)具體實(shí)例:
>>> print "one is %d"%1
one is 1
要求打印(print)的內(nèi)容中,有一個(gè)%d占位符,就是說那個(gè)位置應(yīng)該放一個(gè)整數(shù)。在第二個(gè)%后面,跟著的就是那個(gè)位置應(yīng)該放的東西。這里是一個(gè)整數(shù)1。我們做下面的操作,就可以更清楚了解了:
>>> a=1
>>> type(a)
>>> b="1"
>>> type(b)
>>> print "one is %d"%a
one is 1
>>> print "one is %d"%b???? #報(bào)錯(cuò)了,這個(gè)占位符的位置應(yīng)該放整數(shù),不應(yīng)該放字符串。
Traceback (most recent call last):
? File "
? TypeError: %d format: a number is required, not str
同樣道理,%s對(duì)應(yīng)的位置應(yīng)該放字符串,但是,如果放了整數(shù),也可以。只不過是已經(jīng)轉(zhuǎn)為字符串對(duì)待了。但是不贊成這么做。在將來(lái),如果使用mysql(一種數(shù)據(jù)庫(kù))的時(shí)候,會(huì)要求都用%s做為占位符,這是后話,聽聽有這么回事即可。
>>> print "one is %s"%b
one is 1
>>> print "one is %s"%a???? #字符串是包容的
one is 1
好了。??嗦半天,占位符是不是理解了呢?下面我們就用占位符來(lái)連接字符串。是不是很有意思?
>>> a = "py"
>>> b = "thon"
>>> print "%s%s"%(a,b)? #注
python
注:仔細(xì)觀察,如果兩個(gè)占位符,要向這兩個(gè)位置放東西,代表的東西要寫在一個(gè)圓括號(hào)內(nèi),并且中間用逗號(hào)(半角)隔開。
字符串復(fù)制
有一個(gè)變量,連接某個(gè)字符串,也想讓另外一個(gè)變量,也連接這個(gè)字符串。一種方法是把字符串再寫一邊,這種方法有點(diǎn)笨拙,對(duì)于短的到無(wú)所謂了。但是長(zhǎng)的就麻煩了。這里有一種字符串復(fù)制的方法:
>>> a = "My name is LaoQi. I like python and can teach you to learn it."
>>> print a
My name is LaoQi. I like python and can teach you to learn it.
>>> b = a
>>> print b
My name is LaoQi. I like python and can teach you to learn it.
>>> print a
My name is LaoQi. I like python and can teach you to learn it.
復(fù)制非常簡(jiǎn)單,類似與賦值一樣。可以理解為那個(gè)字符串本來(lái)跟a連接著,通過b=a,a從自己手里分處一股繩子給了b,這樣兩者都可以指向那個(gè)字符串了。
字符串長(zhǎng)度
要向知道一個(gè)字符串有多少個(gè)字符,一種方法是從頭開始,盯著屏幕數(shù)一數(shù)。哦,這不是計(jì)算機(jī)在干活,是鍵客在干活。鍵客,不是劍客。劍客是以劍為武器的俠客;而鍵客是以鍵盤為武器的俠客。當(dāng)然,還有賤客,那是賤人的最高境界,賤到大俠的程度,比如岳不群之流。
鍵客這樣來(lái)數(shù)字符串長(zhǎng)度:
>>> a="hello"
>>> len(a)
5
使用的是一個(gè)函數(shù)len(object)。得到的結(jié)果就是該字符串長(zhǎng)度。
>>> m = len(a)? #把結(jié)果返回后賦值給一個(gè)變量
>>> m
5
>>> type(m)???? #這個(gè)返回值(變量)是一個(gè)整數(shù)型
字符大小寫的轉(zhuǎn)換
對(duì)于英文,有時(shí)候要用到大小寫轉(zhuǎn)換。最有名駝峰命名,里面就有一些大寫和小寫的參合。如果有興趣,可以來(lái)這里看自動(dòng)將字符串轉(zhuǎn)化為駝峰命名形式的方法。
在python中有下面一堆內(nèi)建函數(shù),用來(lái)實(shí)現(xiàn)各種類型的大小寫轉(zhuǎn)化
S.upper() #S中的字母大寫
S.lower() #S中的字母小寫
S.capitalize() #首字母大寫
S.istitle() #是否單詞首字母大寫的,且其它為小寫,注網(wǎng)友白羽毛指出,這里表述不準(zhǔn)確。非常感謝他。為了讓看官對(duì)這些大小寫問題有更深刻理解,我從新寫下面的例子,請(qǐng)看官審查。再次感謝白羽毛。
S.isupper() #S中的字母是否全是大寫
S.islower() #S中的字母是否全是小寫
看例子:
>>> a = "qiwsir,python"
>>> a.upper()?????? #將小寫字母完全變成大寫字母
'QIWSIR,PYTHON'
>>> a?????????????? #原數(shù)據(jù)對(duì)象并沒有改變
'qiwsir,python'
>>> b = a.upper()
>>> b
'QIWSIR,PYTHON'
>>> c = b.lower()?? #將所有的小寫字母編程大寫字母
>>> c
'qiwsir,python'
>>> a
'qiwsir,python'
>>> a.capitalize()? #把字符串的第一個(gè)字母變成大寫
'Qiwsir,python'
>>> a?????????????? #原數(shù)據(jù)對(duì)象沒有改變
'qiwsir,python'
>>> b = a.capitalize() #新建立了一個(gè)
>>> b
'Qiwsir,python'
>>> a = "qiwsir,github"??? #這里的問題就是網(wǎng)友白羽毛指出的,非常感謝他。
>>> a.istitle()
False
>>> a = "QIWSIR"??????? #當(dāng)全是大寫的時(shí)候,返回False
>>> a.istitle()
False
>>> a = "qIWSIR"
>>> a.istitle()
False
>>> a = "Qiwsir,github"? #如果這樣,也返回False
>>> a.istitle()
False
>>> a = "Qiwsir"??????? #這樣是True
>>> a.istitle()
True
>>> a = 'Qiwsir,Github' #這樣也是True
>>> a.istitle()
True
>>> a = "Qiwsir"
>>> a.isupper()
False
>>> a.upper().isupper()
True
>>> a.islower()
False
>>> a.lower().islower()
True
順著白羽毛網(wǎng)友指出的,再探究一下,可以這么做:
>>> a = "This is a Book"
>>> a.istitle()
False
>>> b = a.title()???? #這樣就把所有單詞的第一個(gè)字母轉(zhuǎn)化為大寫
>>> b
'This Is A Book'
>>> a.istitle()?????? #判斷每個(gè)單詞的第一個(gè)字母是否為大寫
False
字符串問題,看來(lái)本講還不能結(jié)束。下一講繼續(xù)。有看官可能要問了,上面這些在實(shí)戰(zhàn)中怎么用?我正想為你的,請(qǐng)鍵客設(shè)計(jì)一種實(shí)戰(zhàn)情景,能不能用上所學(xué)。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
