第十八课课后作业看不明白
编写一个函数 findstr(),该函数统计一个长度为 2 的子字符串在另一个字符串中出现的次数。例如:假定输入的字符串为 “You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.”,子字符串为 “im”,函数执行后打印“子字母串在目标字符串中共出现 3 次”。
def findStr(desStr, subStr):
count = 0
length = len(desStr)
if subStr not in desStr:
print('在目标字符串中未找到字符串!')
else:
for each1 in range(length-1):
if desStr == subStr:
if desStr == subStr:
count += 1
print('子字符串在目标字符串中共出现 %d 次' % count)
desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
findStr(desStr, subStr)
-----
看不明白,请大佬解释一下每一句代码的含义 def findStr(desStr, subStr): # 定义一个函数findStr,这个函数接受两个参数:desStr目标字符串、subStr子字符串
count = 0 # 用来计算出现次数的变量 count
length = len(desStr) # 目标字符串的长度 length
if subStr not in desStr: # 如果子字符串subStr不在目标字符串desStr中
print('在目标字符串中未找到字符串!')# 输出 '在目标字符串中未找到字符串!'
else:# 否则
for each1 in range(length-1): # 根据目标字符串的长度产生索引进行循环
if desStr == subStr: # 如果目标字符串的第 each1 + 1 (因为索引是从0开始,所以加1)个字符等于 子字符串的第一个字符
if desStr == subStr: # 如果目标字符串的第 each1 + 2 个字符等于 子字符串的第二个字符
count += 1 # 出现次数 加一
print('子字符串在目标字符串中共出现 %d 次' % count)# 打印子字符串在目标字符串出现的次数
desStr = input('请输入目标字符串:') # 输入目标字符串
subStr = input('请输入子字符串(两个字符):') # 输入子字符串
findStr(desStr, subStr) # 调用findStr
def findStr(desStr, subStr): #desStr->母串subStr->字串
count = 0
length = len(desStr) # 获取母串长度,限定查找范围i
if subStr not in desStr: # not in 第一步判断 字串 是否在 母串中出现 ; not in 语法不了解建议复习前面
print('在目标字符串中未找到字符串!')
else:
for each1 in range(length-1): # 前边 length 开始作用,限定查找范围 ,each1表示下标 从0开始 到 length-1
if desStr == subStr: # !
if desStr == subStr: # ! 这两句并不同用 只能在本题使用, 原理是一个个匹配,由于长度只有2,所以判断下标 0 1就好
count += 1
print('子字符串在目标字符串中共出现 %d 次' % count)
desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
findStr(desStr, subStr) 这个应该是通用的
def findStr(desStr, subStr):# desStr->母串subStr->字串
count = 0
length = len(desStr)# 获取母串长度,限定查找范围i
if subStr not in desStr: # not in 第一步判断 字串 是否在 母串中出现 ; not in 语法不了解建议复习前面
print('在目标字符串中未找到字符串!')
else:
# 前边 length 开始作用,限定查找范围 ,each1表示下标 从0开始 到 length-1
for each1 in range(length-1):
if desStr != subStr:# 第二个条件 位置和字串开头必须一样
continue
else:
for each2 in range(len(subStr)):# 遍历字串和母串,遇到不一样就停下
# print(desStr, each1, each2, end=" ")
if desStr != subStr or each1+each2 > length:
break
else:# 如果顺利执行完
count += 1
print('子字符串在目标字符串中共出现 %d 次' % count)
desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
findStr(desStr, subStr) 本帖最后由 jackz007 于 2022-3-3 01:21 编辑
看不明白,请大佬解释一下每一句代码的含义
每一句都看不懂,敢问楼主,这是在使唤家奴吗??? jackz007 发表于 2022-3-3 01:19
每一句都看不懂,敢问楼主,这是在使唤家奴吗???
这么大火气??不懂就问,有啥问题? 大马强 发表于 2022-3-3 00:13
非常感谢
页:
[1]