|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这是小甲鱼的一道课后题:编写一个函数 findstr(),该函数统计一个长度为 2 的子字符串在另一个字符串中出现的次数。例如:假定输入的字符串为“You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.”,子字符串为“im”,函数执行后打印“子字母串在目标字符串中共出现 3 次”。
然后我的程序是
string =input('请输入目标字符串:')
aim = input('请输入子字符串(两个字符):')
aim = list(aim)
a= aim[0]
b= aim[1]
length = len(string)-1
string = list(string)
n=0
for i in range(0,length):
if a == string[i]:
if b == string[i+1]:
n=n+1
else:
string= string.remove(string[i])
print("子字符串在目标字符串中共出现了",n,"次")
python给的报错是 if a == string[i]:
TypeError: 'NoneType' object is not subscriptable
求问这个哪里出了问题,应该怎么修改啊
谢谢!
本帖最后由 jackz007 于 2021-1-15 15:49 编辑
删除这两句
- else:
- string= string.remove(string[i])
复制代码
给楼主精简一下代码
- string = input('请输入目标字符串:')
- aim = input('请输入子字符串(两个字符):')
- i , n = 0 , 0
- while i < len(string) - 1:
- if string[i] == aim[0] and string[i + 1] == aim[1]:
- n += 1
- i += 1
- i += 1
- print("子字符串在目标字符串中共出现了",n,"次")
复制代码
for 循环不能支配循环变量 i,while 可以。
|
|