鱼C论坛

 找回密码
 立即注册
查看: 1330|回复: 3

[已解决]第18讲 子字符串查询问题

[复制链接]
发表于 2018-2-1 22:08:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. def findstr(desstr,substr):
  2.     count=0
  3.     length = len(desstr)
  4.     if substr not in desstr:
  5.         print('在目标字符串中未找到字符串!')
  6.     else:
  7.         for each1 in range(length-1):
  8.             if desstr[each1]==substr[0]:
  9.                 if desstr[each1+1]==substr[1]:
  10.                     count +=1
  11.         print('子字符串在目标字符串中共出现%d次' % count)
  12. desstr=input('请输入目标字符串:')
  13. sunstr=input('请输入子字符串(两个字符):')
  14. findstr(desstr,sunstr)
复制代码

if desstr[each1]==substr[0]:
                if desstr[each1+1]==substr[1]:#如何保证substr的第一个字符和desstr的第n个字符匹配
这两个语句没有看懂,substr[0] 里面的索引0是不会变化的,理解不了如何能在一个长字符串里面达到索引的效果

个人的理解是substr[] 中括号里面应该放入一个变量才能达到索引的目的
请大神们给解惑
最佳答案
2018-2-1 22:19:54
第7行, for each1 in range(length-1):
相当于each1会从长字符的第一个字符试到最后一个。
substr下面13行说了是两字符的,所以就比较第一第二个就行了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-2-1 22:16:01 | 显示全部楼层
if desstr[each1]==substr[0]:                          如果一个字符串的中一个字母each和substr第一个字母对上了
                if desstr[each1+1]==substr[1]:        那就再看each后面的字母和substr第二个字母,
                                                                     我记得题好像是两个字母的substr吧,这不就是找到目标字符串了吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-2-1 22:19:54 | 显示全部楼层    本楼为最佳答案   
第7行, for each1 in range(length-1):
相当于each1会从长字符的第一个字符试到最后一个。
substr下面13行说了是两字符的,所以就比较第一第二个就行了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-2-1 22:30:57 | 显示全部楼层
vstia 发表于 2018-2-1 22:19
第7行, for each1 in range(length-1):
相当于each1会从长字符的第一个字符试到最后一个。
substr下面13 ...

for each1 in range(length-1)的索引顺序不是依次的,我想要一个从头到尾依次索引的效果如何得到?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-6 20:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表