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

猜你喜欢

转载自blog.csdn.net/chushujin/article/details/81279071
今日推荐