string = input("Enter the string: ")
sub_string = input("Enter sub string: ")
count = 0
idx = 0
while string.count(sub_string, idx) != 0:
count += string.count(sub_string, idx)
idx = string.index(sub_string, idx)
idx += 1
if string.count(sub_string, idx) == 0:
print(count)
break
当我输入以下代码时:
ininini
ini
它输出输出4
。我尝试运行调试器,但发现第一步是使用+2
而不是+1
来增加计数,我无法弄清楚。任何建议将非常有帮助。
答案 0 :(得分:3)
使用:
count += 1
代替
count += string.count(sub_string, idx)
string.count(sub_string, idx)
最初为2,这就是为什么您最终在第一次迭代中添加2(而不是预期的1),从而比预期多1的原因。
您需要的是在每次迭代中将count
递增1,如果进行此更改,则输出3。
答案 1 :(得分:0)
我会改用for
循环:
string = input("Enter the string: ")
sub_string = input("Enter sub string: ")
count = 0
for index in range(len(string) - len(sub_string) + 1):
if string[index: index + len(sub_string)] == sub_string:
count += 1
print(count)
答案 2 :(得分:-3)
如果您想获取字符串的长度,只需使用
len(string)