和其他語言一樣,python為string物件提供了轉換大小寫的方法:upper() 和 lower()。還不止這些,python還為我們提供了首字母大寫,其餘小寫的capitalize()方法,以及所有單詞首字母大寫,其餘小寫的title()方法。函式較簡單,看下面的例子:
hello python
s.upper()
s.lower()
s.capitalize()
s.title()
輸出結果:
hello python
hello python
hello python
hello python
python提供了isupper(),islower(),istitle()方法用來判斷字串的大小寫。注意的是:
1. 沒有提供 iscapitalize()方法,下面我們會自己實現,至於為什麼python沒有為我們實現,就不得而知了。
2. 如果對空字串使用isupper(),islower(),istitle(),返回的結果都為false。
print'a
'.isupper()
#true
print'a
'.islower()
#false
'python is so good
'.istitle()
#true
#print 'dont do that!'.iscapitalize() #錯誤,不存在iscapitalize()方法
1. 如果我們只是簡單比較原字串與進行了capitallize()轉換的字串的話,如果我們傳入的原字串為空字串的話,返回結果會為true,這不符合我們上面提到的第2點。
defiscapitalized(s):
return
s ==
s.capitalize( )
有人想到返回時加入條件,判斷len(s)>0,其實這樣是有問題的,因為當我們呼叫iscapitalize('123')時,返回的是true,不是我們預期的結果。
2. 因此,我們回憶起了之前的translate方法,去判斷字串是否包含任何英文本母。實現如下:
import
string
notrans
=string.maketrans(
'', '')
defcontainsany(str, strset):
return
len(strset)
!=len(strset.translate(notrans, str))
defiscapitalized(s):
return
s ==
s.capitalize( )
andcontainsany(s, string.letters)
#return s == s.capitalize( ) and len(s) > 0 #如果s為數字組成的字串,這個方法將行不通
呼叫一下試試:
iscapitalized(
'123')
iscapitalized('')
iscapitalized(
'evergreen is zcr1985')
輸出結果:
false
false
true
python 天天美味系列(總)
python 天天美味(9) - translator
python 天天美味(10) - 除法小技巧
python 天天美味(11) - 可愛的大小寫
python 天天美味(12) - 條件判斷的縮寫
python 天天美味(13) - struct.unpack
...
Python天天美味閱讀筆記
從乙個部落格裡找到了這個,本來想看書的,有第二版出了,可惜圖書館沒有。先看看這個再說。1 交換變數 python可以寫出這麼自然的 a b c c a b乙個冒氣泡排序的例子 array 1,2,5,3,6,8,4 for i in range len array 1,1,1 for j in ra...
Python天天美味 1 交換變數
python美味第一頓,來個方便快捷的變數交換!為什麼是python?因為python中交換變數不需要臨時變數!如 a,b,c b,c,a 來個複雜一點的例子,再來一頓家喻戶曉的 氣泡排序 吧 array 1,2,5,3,6,8,4 fori inrange len array 1 1,1 forj...
Python天天美味 35 細品lambda
lambda函式也叫匿名函式,即,函式沒有具體的名稱。先來看乙個最簡單例子 deff x returnx 2printf 4 python中使用lambda的話,寫成這樣g lambda x x 2 printg 4 lambda表示式在很多程式語言都有對應的實現。比如c var g x x 2co...