Python天天美味 11 可愛的大小寫

2021-09-05 18:56:50 字數 1958 閱讀 3484

和其他語言一樣,python為string物件提供了轉換大小寫的方法:upper() 和 lower()。還不止這些,python還為我們提供了首字母大寫,其餘小寫的capitalize()方法,以及所有單詞首字母大寫,其餘小寫的title()方法。函式較簡單,看下面的例子:

hello python

'print

s.upper()

print

s.lower()

print

s.capitalize()

print

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

print

'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為數字組成的字串,這個方法將行不通

呼叫一下試試:

print

iscapitalized(

'123')

print

iscapitalized('')

print

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...