|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目如图,我自己用两种方法写了这个代码,一种是for循环字符位置,这个代码没有问题。另一种是for循环字符,这个就出问题了
def findstr():
temp = input('请输入目标字符串:')
letter = input('请输入子字符串:')
count = 0
for each in temp:
if each+temp[temp.index(each)+1] == letter:
count += 1
print('子字符串在目标字符串中共出现',count,'次')
return count
当我输入You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.然后查找im,结果返回的是6,我不明白这6个是怎么出来的
本帖最后由 森亦简 于 2022-6-17 00:28 编辑
原因是str.index()这个指令,当有多个相同的元素只会返回第一个的下标。虽然你设置成了去找each的下标然后+1,但是对于这个指令而言,不管你是输入最先出现的12号位置的i,还是输入别的位置的i,对于后面的来说temp.index(each)始终等于最先出现i得位置12,加1之后自然是m。也就是说后面出现所有的i,随之temp[temp.index(each)+1]这个的结果都是m,刚好这句话里有6个i所以你的答案出现了6次的结果。
|
|