我这个代码运行不出来,请大神们帮忙看看,谢谢~
题目(老版作业18,动动手第2题):编写一个函数 findstr(),该函数统计一个长度为 2 的子字符串在另一个字符串中出现的次数。例如:假定输入的字符串为“You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.”,子字符串为“im”,函数执行后打印“子字母串在目标字符串中共出现 3 次”。我的代码:
a = input('请输入一个目标字符串:')
b = input('请输入子字符串:')
n = 0
list = []
length = len(a)
for i in range(1,length-1):
c = a
list.append(c)
m = 0
while 0<=m<=length-1:
if b==list:
n+=1
m+=1
print(n) 报错提示发上来 不能懒 发表于 2020-8-12 20:03
报错提示发上来
首先,错误在第六行,把range(1, length-1)改成range(length),
后来,我发现你的代码达不到你的目的,就是说没法统计一个长度为2的子字符串在另一个字符串出现的次数,所以我改了一下代码,如下:
a = input('请输入一个目标字符串:')
b = input('请输入子字符串:')
n = 0
list = []
length = len(a)
for i in range(length): # 这里应该改成range(length)
c = a
list.append(c)
m = 0
while 0<=m<=length-1:
if b==list and b == list:
n+=1
m+=1
print(n)
首先,代码有错误,其次,我改了之后,运行了你的代码,发现,这不符合18讲动动手第二题的要求。就是那个字符串的次数统计逻辑有漏洞,我再帮你改进了一下。
你看看:
a = input('请输入一个目标字符串:')
b = input('请输入子字符串:')
n = 0
list = []
length = len(a)
for i in range(length):
c = a
list.append(c)
m = 0
while 0<=m<=length-1:
if b==list and b == list:
n+=1
m+=1
print(n) 一抹心尘 发表于 2020-10-29 17:38
首先,代码有错误,其次,我改了之后,运行了你的代码,发现,这不符合18讲动动手第二题的要求。就是那个字 ...
a = input('请输入一个目标字符串:')
b = input('请输入子字符串:')
n = 0
list = []
length = len(a)
for i in range(length):
c = a
list.append(c)
m = 0
while 0<=m<=length-1:
if b==list and b == list:
n+=1
m+=1
print(n)
这是代码格式了。
页:
[1]