我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。
上篇文章我们通过举例学习了字符串进行简单说明。今天继续讨论字符串相关的操作。
字符串的处理在实际的工作中经常会用到,需要熟练掌握才行。
1、字符串的截取
字符串也属于序列,可以进行切片操作。
切片的语法: str_name[start:end:step]
参数说明: str_name ----------表示要截取的字符串
Start -----------要截取的字符串的第一个字符索引,不指定的话默认为0
End -----------要截取的字符串最后一个字符索引,不指定则默认全部
Step ------------表示切片的步长,默认为1
举例说明:
str1 = "我爱祖国!"
str2 = 'I am Dewi,'
str_add = str2 + str1
print(str_add[0])#取第一个字符
print(str_add[1])#取第二个字符
print(str_add[2:10:2])#取第3个到第10,步长为2
print(str_add[2:10])#取第3个到第10
输出结果:
实际例子:如要取出身份证中的生日
credit_num = '123434199803248010'
print("这位同学的生日是:",credit_num[10:12],"-",credit_num[12:14])
输出结果:
这位同学的生日是: 03 – 24
2、字符串的分割
分割字符串可以使用split()方法来实现。
语法如下:strname.split(sep,maxsplit)
说明: strname----------要分割的字符串
Sep ----------用于指定分隔符,可以包含多个分隔符,默认为None,即所有空字符(包含空格、换行“\n”、制表符“\t”等)
Maxsplit ---------可选参数,用于指定分割的次数,不指定默认为-1,分割次数无限制。
返回值:分割后的字符串列表
举例说明:
str_sp = "I am dewi,I love China!"
print(str_sp)
list_sp = str_sp.split() #默认使用空格分割
print(list_sp)
list_sp1 = str_sp.split(",")#使用逗号分割
print(list_sp1)
str_baidu = "www.baidu.com"
print(str_baidu.split("."))#指定.来分割
输出结果:
3、字符串的合并
语法格式:strnew = string.join(iterable)
参数: strnew ------生成新的字符串
String ---------字符串类型,用于指定合并时字符串的类型
Iterable -------- 可迭代对象,该迭代对象中的所有元素被合并到一起,称为一个新的字符串,并且以string 分割开来。
举个小栗子:如 ['www', 'baidu', 'com'] 百度的网址存在列表中,将其合并为字符串
str_baidu = "www.baidu.com"
list_baidu = str_baidu.split(".")#指定.来分割
print(list_baidu)
str_new_baidu = ".".join(list_baidu)#百度的列表合并为字符串,并用.分割
print(str_new_baidu)
输出结果:
4、检索字符串
在python中有关于字符串查找的方法,我们来讨论一些。
1)count()方法
使用count()方法用于检索指定字符串在另一个字符串中出现的次数。若是检索的字符串不存在,则返回0,否则返回具体的次数。
使用语法: str.count(sub[,start[,end]])
说明: str --------表示原字符串
Sub -------表示子字符串
Start ------可选参数,检索的起始位置,不写默认从头开始(子字符串)
End ------可选参数,检索的结束位置,不写默认检索到结尾(子字符串)
举个例子:
#计算#出现的次数
str_count = "#董事长 #总经理 #保安队长 #保安队长 #职工 #职工 #职工"
print("#出现的次数:",str_count.count("#"))
print("#职工出现的次数:",str_count.count("#职工"[0:3]))#注意0:3是之子字符串
输出结果参考:
2)find()方法
使用find()方法可以检索是否包含指定的字符串。如果检索的子字符串不存在,就返回-1,否在返回首次出现该子字符串时的索引。
参考语法:str.find(sub[start,end])
注意:其中str : 表示被检索的字符串
Sub------表示子字符串,
Start -------可选参数,表示检索范围的起始位置的索引,不指定的从头开始检索
End ---------可选参数,表示检索范围的结束位置的索引,不指定的检索到结尾
str_count = "#董事长 #总经理 #保安队长 #保安队长 #职工 #职工 #职工 #职业"
print(str_count.find("董"))
输出:1
3)index()方法
使用的index()方法检索字符串和find()方法类似。只是index()方-方法若是指定的字符串不存在时,会抛出异常。语法:str.index(sub[,start[,end]])
参数和上面类似
举例说明:
str_count = "#董事长 #总经理 #保安队长 #保安队长 #职工 #职工 #职工 #职业"
print(str_count.index("董")) #索引为1
print(str_count.index("东")) #查询到没有对应的子字符串
输出结果:
4)startswith()方法
使用startswith 方法查看字符串是不是以某个字符开头,若是返回True
若否返回False
举例说明:
str_count = "#董事长 #总经理 #保安队长 #保安队长 #职工 #职工 #职工 #职业"
print(str_count.startswith("董"))
print(str_count.startswith("#"))
输出如下:
5)endswith()方法
使用endswith() 方法查看字符串是不是以某个字符开头,若是返回True
若否返回False
举例说明:
str_count = "#董事长 #总经理 #保安队长 #保安队长 #职工 #职工 #职工 #职业"
print(str_count.endswith("董"))
print(str_count.endswith("#职业"))
今天先写到这里了,每天进步一点点。今天也要加油啊!