本节课将学习两个与搜索字符串位置有关的函数,分别是index和find。
这两个函数的语法结构相同,区别在于当搜索不到指定的字符串时,返回值不一样。
str.index(sub,[,start[,end]]) 当搜索的字符串不存在时,抛出错误提示。
str :父字符串
Sub:必选参数,搜索的子字符串
Start:可选参数,字符串开始搜索的起始位置,默认从第0个字符开始搜索。
End:可选参数,字符串结束搜索的位置,默认搜索到字符串最后。
S='A组89,B组98,C组100,D组78,B组74'
# print(S.index('B组'))
# print(S.index('B组',6))
# print(S.index('B组',6,15))
print(S.find('B组',6,16))
find(sub,[,start[,end]]) 当搜索的字符串不存在时,返回值为-1。
Sub:必选参数,搜索的子字符串
Start:可选参数,字符串开始搜索的起始位置,默认从第0个字符开始搜索。
End:可选参数,字符串结束搜索的位置,默认搜索到字符串最后。
查找不到数据是,index报错。find不会报错,返回-1。
import xlrd
from xlutils.copy import copy
wb=xlrd.open_workbook('等级表.xls')
ws=wb.sheet_by_name('Sheet1')
nwb=copy(wb)
nws=nwb.get_sheet('Sheet1')
n=0
while n<ws.nrows-1:
n+=1
s=ws.cell_value(n,1) #获取n行1列的单元格数据
nws.write(n,2,s.count('优',s.find('\n'))) #统计s单元格的优的数量,从\n后开始统计,\n表示换行符
nwb.save('等级表.xls')