请问我这段代码是哪里出了问题(零基础学python018讲,第2题)
本帖最后由 牛牛pp 于 2019-11-8 15:29 编辑def findstr(x,y):
x = input ('请输入目标字符串:')
y = input ('请输入子字符串(两个字符):')
n = len(x)
a = 0
b = 2
count = 0
while b <= n:
singal = x.find(y,a,b)
if singal != -1:
count += 1
a += 1
b += 1
return count
发不了图片.... def findstr():
x = input ('请输入目标字符串:')
y = input ('请输入子字符串(两个字符):')
n = len(x)
a = 0
b = 2
count = 0
while b <= n:
singal = x.find(y,a,b)
if singal != -1:
count += 1
a += 1
b += 1
return count 对齐
def findstr(x,y):
x = input ('请输入目标字符串:')
y = input ('请输入子字符串(两个字符):')
n = len(x)
a = 0
b = 2
count = 0
while b <= n:
singal = x.find(y,a,b)
if singal != -1:
count += 1
a += 1
b += 1
return count
本帖最后由 jackz007 于 2019-11-8 16:06 编辑
singal = x.find(y,a,b)
这一句,find() 方法为什么要指定 b 选项,每次在 2 个字符中寻找,find() 方法的优势根本得不到充分发挥,如果是这样的话,你完全可以不用 find() 方法,直接按 2 个字符从头到尾循环比较就可以了。
下面是我写的代码,楼主可以参考一下:
def findstr(x , y):
a , count = 0 , 0
while a >= 0 and a <= len(x) - len(y) :
a = x . find(y , a)
if a != -1:
count += 1
a += len(y)
return count
x = input ('请输入目标字符串:') . strip()
y = input ('请输入子字符串(两个字符):') . strip()
print(findstr(x , y))
print(x . count(y)) jackz007 发表于 2019-11-8 15:43
这一句,find() 方法为什么要指定 b 选项,每次在 2 个字符中寻找,find() 方法的优势根本得不到充 ...
你直接def findStr(a,b):
for i in range(len(a)-len(b)):
if a==b:
return i
else:
return -1岂不是更好…… 除了缩进应该没啥问题,但是太复杂了,没必要find 本帖最后由 zltzlt 于 2019-11-8 20:36 编辑
缩进错误:
def findstr(x,y):
x = input ('请输入目标字符串:')
y = input ('请输入子字符串(两个字符):')
n = len(x)
a = 0
b = 2
count = 0
while b <= n:
singal = x.find(y,a,b)
if singal != -1:
count += 1
a += 1
b += 1
return count
正确代码:
def findstr():
x = input ('请输入目标字符串:')
y = input ('请输入子字符串(两个字符):')
n = len(x)
a = 0
b = 2
count = 0
while b <= n:
singal = x.find(y,a,b)
if singal != -1:
count += 1
a += 1
b += 1
return count
本帖最后由 zltzlt 于 2019-11-10 17:41 编辑
请删除 zltzlt 发表于 2019-11-8 20:35
缩进错误:
def findstr(x,y):
确实,一不小心就错了。 本帖最后由 牛牛pp 于 2019-11-10 17:50 编辑
jackz007 发表于 2019-11-8 15:43
这一句,find() 方法为什么要指定 b 选项,每次在 2 个字符中寻找,find() 方法的优势根本得不到充 ...
思维还没有转变过来,总觉得,要去“找”东西,就想到find(),楼下的那位兄弟的方法挺简洁。 永恒的蓝色梦想 发表于 2019-11-8 16:20
你直接岂不是更好……
多谢指导,没想到还可以这样
页:
[1]