循环问题求助
def finder(temp1,temp2):if temp2 not in temp1:
print('在目标字符串中未找到字符串!')
A = 0
B = 0
C = 1
while C:
if temp2 in temp1:
A = temp1.index(temp2) + 1 + A
B = B + 1
return '子字符串在目标字符串中共出现 %d 次' % B
课后作业18讲中动动手第二小题,编写了上述函数
但循环没有运行,只运行了一次
请教各位大佬,我的循环问题在哪里
、
def finder(temp1,temp2):
if temp2 not in temp1:
print('在目标字符串中未找到字符串!')
A = 0
B = 0
C = 1
while C:
if len(temp1) == A:
return '子字符串在目标字符串中共出现 %d 次' % B
if temp2 in temp1:
A = temp1.index(temp2) + 1 + A
B = B + 1
修好了 名字只有七个字 发表于 2021-5-10 13:28
def finder(temp1,temp2):
if temp2 not in temp1:
print('在目标字符串中未找到字符串!')
没有明白,你能否在文字描述一下,存在的问题 while C这里缩进有问题,并且你没有判断字符串遍历完成,所以没有结果 名字只有七个字 发表于 2021-5-10 14:03
while C这里缩进有问题,并且你没有判断字符串遍历完成,所以没有结果
是的 ,一个是我的"return"的缩进问题,应该是在总的“def”下面缩进;另外一个是判断遍历问题;
后来我自己做了修改,好像可以的,你帮我看看是否正确?
def finder(temp1,temp2):
if temp2 not in temp1:
print('在目标字符串中未找到字符串!')
A = 0
B = 0
while len(temp1) > A:
if temp2 in temp1:
A = temp1.index(temp2) + 1 + A
B = B + 1
else:
A = A + 1
return '子字符串在目标字符串中共出现 %d 次' % B return 多缩进之后,造成“if”执行第一遍之后,就已return输出。所以这样循环根本就没有执行。
后来,return 缩进改进之后,循环体执行,但因为一直是真,所以死机,不出结果。
看我是否理解正确
>>> def finder(temp1,temp2):
if temp2 not in temp1:
print('在目标字符串中未找到字符串!')
A = 0
B = 0
while len(temp1) > A:
if temp2 in temp1:
A = temp1.index(temp2) + 1 + A
B = B + 1
else:
A = A + 1
return '子字符串在目标字符串中共出现 %d 次' % B,A
>>> finder("You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.","ou")
('子字符串在目标字符串中共出现 4 次', 99) def finder(temp1, temp2):
if temp2 not in temp1:
print('在目标字符串中未找到字符串!')
A = 0
B = 0
while len(temp1) > A:
if temp2 in temp1:
A = temp1.index(temp2) + 1 + A
B = B + 1
else:
A = A + 1
print( '子字符串在目标字符串中共出现 %d 次' % B)
print('请输入目标字符串:',end='')
temp1 = input()
print('请输入子字符串(两个字符):',end='')
temp2 = input()
finder(temp1,temp2)
页:
[1]