十二、python字符串方法彙總

'''
1. index():檢測字符串str1中是否包含字符串str2
   語法:str1.index(str2,beg,end)
   str:指定檢索的字符串;beg開始的索引,默認爲0;end結束的索引,默認字符串的長度
   如果字符串中包含,返回開始的索引值,否則跑拋出異常
'''
str1="this is a book"
str2="bo"
print str1.index(str2)
print str1.index(str2,8)
print str1.index(str2,11)

----------------------------------------
15
15
報錯

--------------------------------------------------------------------------------------------------------------
'''
2.isalnum():檢測字符串是否由字母和數字組成
  string中至少有1個字符串,且所有字符都是字母或者數字或者字母數字組合,則返回True,否則返回false
'''
str="abc1905"
str1="abx"
str2="abc!@"
print str.isalnum()
print str1.isalnum()
print str2.isalnum()
----------------------------------------

   True
   True
   False

--------------------------------------------------------------------------------------------------------------
'''
3.isalpha():檢測字符串只有字母組成
string中至少有1個字符串,且所有字符都是字母,則返回True,否則返回false
'''
str="abc"
str1="abc123"
str2="abcABC"
print str.isalpha()
print str1.isalpha()
print str2.isalpha()
----------------------------------------

 True
    False
    True

--------------------------------------------------------------------------------------------------------------
'''
4.isdigit():檢測字符串只由數字組成
string中至少有1個字符串,且所有字符都是數字,則返回True,否則返回false
'''
str="123456789"
str1="abc123"
print str.isdigit()
print str1.isdigit()
----------------------------------------

    True
    False

--------------------------------------------------------------------------------------------------------------
'''
5.islower():檢測字符串只由小寫字母組成
string中至少有1個字符串,且所有字符都是小寫字母,則返回True,否則返回false
'''
str="daffdsfds"
str1="afdfsdfSDADSA"
print str.islower()
print str1.islower()
----------------------------------------

    True
    False

--------------------------------------------------------------------------------------------------------------
'''
6.isnumeric():檢測字符串只由數字組成,該方法只針對unicode對象
string中至少有1個字符串的unicode對象(僅需在對象前加“u”),且所有字符都是數字,則返回True,否則返回false
'''

str=u"abc1234"
str1=u"1223445"
str2="1332656"
print str.isnumeric()
print str1.isnumeric()
print str2.isnumeric()
---------------------------------------- 

    False
    True
    Traceback (most recent call last):
    File "D:/zhiliangbaozhangbu/06workspace/chushujin/test/��ϰ��/teststr.py", line 67, in <module>
    print str2.isnumeric()
    AttributeError: 'str' object has no attribute 'isnumeric'

--------------------------------------------------------------------------------------------------------------
'''
7.isspace():檢測字符串只由空格組成
string中至少有1個字符串,且所有字符都是空格,則返回True,否則返回false
'''

str="    "
str1="123    abc"
print str.isspace()
print str1.isspace()
----------------------------------------

    True
    False

--------------------------------------------------------------------------------------------------------------
'''
8.istitle()檢測字符串中所有字母的首字母都是大寫,其餘爲小寫
string中至少有1個字符串,且所有字符的首字母都是大寫,其餘爲小寫,則返回True,否則返回false
'''
str="This Is A Pig"
str1="This is a pig"
str2="THIS Pig"
str3="This Is 1234"
print str.istitle()
print str1.istitle()
print str2.istitle()
print str3.istitle()
----------------------------------------

    True
    False

    False

    True

--------------------------------------------------------------------------------------------------------------
'''
9.isupper():檢測所有字符串的首字母都是大寫
string中至少有1個字符串,且所有字符的字母都是大寫,則返回True,否則返回false
'''
str="THIS IS A PIG"
str1="THis is a pig"
str2="THIS IS A 123456"

print str.isupper()
print str1.isupper()
print str2.isupper()
----------------------------------------

    True
    False

    True

--------------------------------------------------------------------------------------------------------------
'''
10.join():用於將序列中的元素以指定的字符串生成一個新的字符串
語法:str.join(seq)--seq爲要連接的字符列表,str作爲整體,穿插在seq每個字符串中間
str.join(seq)之後生成的只能是字符串,字典只能對鍵進行連接
'''
str="-"
seq="abcd"
wow="123"
print str.join(seq)
print seq.join(wow)
list=['1','2','3','4','5']
print(''.join(list))
seq = {'hello':'nihao','good':2,'boy':3,'doiido':4}
print('-'.join(seq))        #字典只對鍵進行連接
----------------------------------------

   a-b-c-d
   1abcd2abcd3

    12345
    boy-good-doiido-hello

--------------------------------------------------------------------------------------------------------------
11.split(): 通過指定分隔符對字符串進行切片,如果參數 num 有指定值,則僅分隔 num 個子字符串
語法:str.split(str="", num=string.count(str))
  • str -- 分隔符,默認爲所有的空字符,包括空格、換行(\n)、製表符(\t)等。
  • num -- 分割次數。
例子:
str="admin$123$AAA$BBB"

r=str.split('$')
print (r)
m=str.split('$',1)
print (m)
------------------------------------------

    ['admin', '123', 'AAA', 'BBB']
    ['admin', '123$AAA$BBB']

--------------------------------------------------------------------------------------------------------------
'''
12.strip():方法,用於移除字符串頭尾指定的字符(默認爲空格或換行符)或字符序列。
注意:該方法只能刪除開頭或是結尾的字符,不能刪除中間部分的字符。
'''

str="    000000 a  b0d    000000    "
i=str.strip()
print (i)
m=i.strip("0")
print(m)
---------------------------------------

    000000 a b0d 000000
    a b0d


 

練習題:

1.寫函數,計算傳入字符串中【數字】、【字母】、【空格] 以及 【其他】的個數

 

#寫函數,計算傳入字符串中【數字】、【字母】、【空格] 以及 【其他】的個數

def func(str):
    ret_num=0
    digit_num=0
    alpha_num=0
    space_num=0
    for i in str:
        if i.isdigit():
            digit_num +=1 #數字
        elif i.isalpha():
            alpha_num +=1 #字母
        elif i.isspace():
            space_num +=1 #空格
        else:
            ret_num +=1   #其他
    return (digit_num,alpha_num,space_num,ret_num)

seq="safs123ag   hhjg^&*jgj"
r=func(seq)
print r
------------------------------
(3, 13, 3, 3)
#####################################################################################
'''
3、寫函數,判斷用戶傳入的對象(字符串、列表、元組)長度是否大於5。
'''
# def func(str):
#     if len(str)>5:
#         print ("長度大於5")
#     else:
#         print ("長度小於等於5")
#     return len(str)
#     #return str
# seq="sgdfdhf"
# r1=func(seq)
# seq1=["111","222","333","444"]
# r2=func(seq1)
# seq2={'a':'11','b':'22','c':'33','d':'44','e':'55','f':'66'}
# r3=func(seq2)
# print r1,r2,r3
------------------------------------------

  長度大於5
  長度小於等於5
  長度大於5
  7 4 6

################################################################################################
'''
5、寫函數,檢查傳入列表的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者。
'''

# def func(str):
#     if len(str)>2:
#         result=str[0:2]
#     else:
#         pass
#     return result
#
#
# l=['111','222','aaa','555','666','888']
# r=func(l)
# print r
-------------------------------------------------
['111', '222']
######################################################################################
'''
6、寫函數,檢查獲取傳入列表或元組對象的所有奇數位索引對應的元素,並將其作爲新列表返回給調用者。
'''
# def func(str):
#     l=[]
#     for i in range(len(str)):
#         if i%2==1:
#             l.append(str[i])
#     return l
#
# seq=['00','11','22','33','44','55','66']
# r=func(seq)
# print r
--------------------------------------------
['11', '33', '55']
###############################################################################################

'''
7、寫函數,檢查傳入字典的每一個value的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者。
'''
# def func(str):
#     ret={}
#     for i in str:
#         if len(str[i])>2:
#             #print str[i],type(str[i])
#             ret.update({i:str[i][0:2]})
#
#     return ret
# seq={'aa':'111','bb':'22','cc':'1','dd':[88,99,66]}
# r=func(seq)
# print r
------------------------------------------------------
{'aa': '11', 'dd': [88, 99]}
發佈了49 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章