子串在没有使用任何计数或其他函数的情况下出现在字符串中的次数

时间:2017-10-21 17:09:20

标签: python

我正在尝试计算字符在字符串中出现的次数。例如,符号b在字符串abbcddba中出现3次。但是,下面的代码会计算字符串的长度。例如,如果我尝试计算b在字符abbcddba中出现的次数,则计数为8

MyStr = input('Please enter a string: ')
symb = input('Which character you want to the count for: ')
count = 0
for i in range(0,len(MyStr)):
    if symb in MyStr:
        count = count + 1
print(count)

我哪里错了?

2 个答案:

答案 0 :(得分:0)

注意:这是一个通用的解决方案,用于查找字符串中子字符串/字符的计数

继续检查你的符号是否存在于Mystr的开头,如果找到增量计数并在MyStr的开头删除符号,否则跳过第一个字符然后继续!

>>> MyStr = 'thisishelloheyhihello'
>>> symb = 'hello'
>>> count=0
>>> while symb in MyStr:
...     if MyStr.startswith(symbol):
...             count+=1
...             MyStr = MyStr[MyStr.find(synb,2):]
...     else:MyStr=MyStr[1:]
... 
>>> print count
2

使用for循环:

>>> for i in range(len(MyStr)):
...     if MyStr[i:].startswith(symb):
...             count+=1
... 
>>> count
3

答案 1 :(得分:0)

我们可以这样:

s='abbcddba'
e='b'
c=0
for a in s:
    if e==a:
        c=c+1
print(c)