本节课将学习两个与搜索字符串位置有关的函数,分别是index和find。
    这两个函数的语法结构相同,区别在于当搜索不到指定的字符串时,返回值不一样。
    str.index(sub,[,start[,end]]) 当搜索的字符串不存在时,抛出错误提示。
    str :父字符串
    Sub:必选参数,搜索的子字符串
    Start:可选参数,字符串开始搜索的起始位置,默认从第0个字符开始搜索。
    End:可选参数,字符串结束搜索的位置,默认搜索到字符串最后。

    1. S='A组89,B组98,C组100,D组78,B组74'
    2. # print(S.index('B组'))
    3. # print(S.index('B组',6))
    4. # print(S.index('B组',6,15))
    5. print(S.find('B组',6,16))

    find(sub,[,start[,end]]) 当搜索的字符串不存在时,返回值为-1。
    Sub:必选参数,搜索的子字符串
    Start:可选参数,字符串开始搜索的起始位置,默认从第0个字符开始搜索。
    End:可选参数,字符串结束搜索的位置,默认搜索到字符串最后。

    查找不到数据是,index报错。find不会报错,返回-1。

    1. import xlrd
    2. from xlutils.copy import copy
    3. wb=xlrd.open_workbook('等级表.xls')
    4. ws=wb.sheet_by_name('Sheet1')
    5. nwb=copy(wb)
    6. nws=nwb.get_sheet('Sheet1')
    7. n=0
    8. while n<ws.nrows-1:
    9. n+=1
    10. s=ws.cell_value(n,1) #获取n行1列的单元格数据
    11. nws.write(n,2,s.count('优',s.find('\n'))) #统计s单元格的优的数量,从\n后开始统计,\n表示换行符
    12. nwb.save('等级表.xls')