'''
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]}