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

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