啦啦啦wo是谁 发表于 2020-8-12 19:57:40

我这个代码运行不出来,请大神们帮忙看看,谢谢~

题目(老版作业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:16

报错提示发上来

弱弱的佳佳 发表于 2020-8-12 20:37:30

不能懒 发表于 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)

一抹心尘 发表于 2020-10-29 17:38:18

首先,代码有错误,其次,我改了之后,运行了你的代码,发现,这不符合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:39:32

一抹心尘 发表于 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]
查看完整版本: 我这个代码运行不出来,请大神们帮忙看看,谢谢~