第三题,运行结果不对,可以从7~20行看看,是哪里有逻辑错误吗

img

img

img

你第二次find之后index是从切片后的0开始算的,比如第一次在40这个位置找到,第二次从40开始找,在50这个位置找到了,此时index就为10而不是50,再下一次切片就对不上了

你这个程序第14行while循环的判断条件是len(newpi)>=index。
根据第16行的index的定义,如果find birthday,index的值是birthday的位置;如果没有find,index的值为-1。你的while循环会一直进行下去。
综上所述,你的while循环的判断条件有问题,应该改为index!=-1.