本帖最后由 jackz007 于 2019-11-16 21:39 编辑
14 是字符串 obj 的总长度,因为 for aim in obj 这个语句将会按单个字符,而不是按楼主所预期的 2 个字符那样来枚举 obj。
应该这么修改:obj = input('请输入目标字符串:') . strip() # 获取键盘输入,用 strip() 去掉字符串首尾的空白字符
aim = input('请输入子字符串(两个字符):') . strip() # 获取键盘输入,用 strip() 去掉字符串首尾的空白字符
count , i = 0 , 0 # 目标计数 count 和循环变量 i 赋初值 0
while i < len(obj) - len(aim) + 1 : # 从下标 0 开始,在字符串 obj 中循环查找 aim
if obj[i : i + len(aim)] == aim: # 如果字符串切片 obj[i : i + len(aim)] 与 aim 相等
count += 1 # 目标计数加 1
i = i + len(aim) # 循环变量 i 步进 len(aim) 个字符
else: # 否则,如果二者不相等
i += 1 # 循环变量步进 1 个字符
print('子字符串在目标字符串中共出现' , count , '次') # 显示最终的寻找结果
当然,最简洁的代码是这样:obj = input('请输入目标字符串:') . strip()
aim = input('请输入子字符串(两个字符):') . strip()
print('子字符串在目标字符串中共出现' , obj . count(aim) , '次')
|