I am getting the error
TypeError: must be str, not int on -> if s[i: i+3] == 'bob':
number_of_times = 0
i=0
for i in s:
if s[i: i+3] == 'bob':
number_of_times += 1
print(str(number_of_times))
What you need to do is change your for loop
as :
for i in range(len(s)): #point of interest
if s[i: i+3] == 'bob':
number_of_times += 1
Here, when you do for i in s
, your value of i
is char
.
For ex :
s="bob"
for i in s:
print(i)
#b
#o
#b
So when you do s[i]
, you are basically doing something like s['b']
, which is wrong.
Anyways, its better to use find
, an inbuilt function to find the starting index
of your substring
. If not found, it returns -1
.
Ex :
>>> s="hi i am bob !"
>>> s.find('bob')
=> 8
Or, if you want to count the number of times a substring occurs, use count
, another inbuilt funciton.
Ex :
>>> s="hi bob ! bob is a man"
>>> s.count('bob')
=> 2