|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第一个问题:
desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
请问这两句为啥不能紧接着第一句写呢?而是一定要放在最后呢?
def findStr(desStr, subStr):
desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
第二个问题呢
for each1 in range(length-1):
突然冒出个 each1,这一句中 each1 如何定义的呢?
后面 each1+1 更是一头雾水
if desStr[each1] == subStr[0]:
if desStr[each1+1] == subStr[1]:
感谢高手指点
本帖最后由 昨非 于 2020-11-22 21:07 编辑
先上标准答案:
- def findStr(desStr, subStr):
- count = 0
- length = len(desStr)
- if subStr not in desStr:
- print('在目标字符串中未找到字符串!')
- else:
- for each1 in range(length-1):
- if desStr[each1] == subStr[0]:
- if desStr[each1+1] == subStr[1]:
- count += 1
-
- print('子字符串在目标字符串中共出现 %d 次' % count)
- desStr = input('请输入目标字符串:')
- subStr = input('请输入子字符串(两个字符):')
- findStr(desStr, subStr)
复制代码
问题一:
答:上面def后的一大堆是对函数的定义
而- desStr = input('请输入目标字符串:')
- subStr = input('请输入子字符串(两个字符):')
- findStr(desStr, subStr)
复制代码
是对函数的调用,之所以这么写,是想将这一功能封装为函数,不想写成函数,你大可把def定义函数的部分去掉,直接遍历字符串内容
第十八讲名字就是《函数》,这里还有问题需要反思一下自己咋学的了
问题二:
答: - def findStr(desStr, subStr):
- count = 0
- length = len(desStr)
- if subStr not in desStr:
- print('在目标字符串中未找到字符串!')
- else: #这里的条件是字串在目标字符串里
- for each1 in range(length-1): #length为目标字符串的长度,减一刚好是目标串的索引范围
- #而for...in range(n)的语法中,...只是一个循环变量名字而已,叫i,j,k,each,什么都可以,它的取值是range函数规定的,0到n-1;
- # each1就是下面要用到的字符串索引值
- if desStr[each1] == subStr[0]: #这里只不过是比较目标串的各个字符有没有和字串第一个字符相同的,如果相同,进入下一层判断
- if desStr[each1+1] == subStr[1]: #与字串第一个字符匹配后,移到后一位字符进行判断,索引值加一就是后移一位,没什么难理解的
- count += 1 #前两个条件都满足了,计数出现次数加一
-
- print('子字符串在目标字符串中共出现 %d 次' % count)
复制代码
我感觉我讲清楚了,你再看看
|
|