十二、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

--------------------------------------------------------------------------------------------------------------
'''
13. center() 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格。
'''

str="abc"
print (str.center(20))
print (str.center(20,"*"))
---------------------------------------

                  abc
    ********abc*********

--------------------------------------------------------------------------------------------------------------

'''
14. capitalize()将字符串的第一个字母变成大写,其他字母变小写。对于 8 位字节编码需要根据本地环境。
'''

str="abc"
str1="aBGHG"
print (str.capitalize())
print (str1.capitalize())
---------------------------------------

    Abc
    Abghg

--------------------------------------------------------------------------------------------------------------
'''
15. count():用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
str.count(sub, start= 0,end=len(string))
sub -- 搜索的子字符串
start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
'''
str="this is strings"
sub="i"
print (str.count(sub,4,40))
print (str.count(sub))
---------------------------------------

    2

    3

--------------------------------------------------------------------------------------------------------------

练习题:

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


posted @ 2018-07-23 10:15  旅行没有终点  阅读(433)  评论(0编辑  收藏  举报