s = "mouse"
animal_letter = s.find('s')
print animal_letter
my_var = 'mummy'. #Find the position of 'm'
#Using find - find returns the index for the first instance from the left.
my_var.find('m')
# Output: 0
#Using rfind - rfind returns the index for the first instance from the right.
my_var.rfind('m')
# Output: 3
# With find() and rfind(), when substring is not found, it returns -1.
#NB: You can use index() and rindex(). In this case, when the substring is not
# found, it raises an exception.
str = 'codegrepper'
# str[start:end:step]
#by default: start = 0, end = len(str), step = 1
print(str[:]) #codegrepper
print(str[::]) #codegrepper
print(str[5:]) #repper
print(str[:8]) #codegrep
print(str[::2]) #cdgepr
print(str[2:8]) #degrep
print(str[2:8:2]) #dge
#step < 0 : reverse
print(str[::-1]) #reppergedoc
print(str[::-3]) #rpgo
# str[start:end:-1] means start from the end, go backward and stop at start
print(str[8:3:-1]) #pperg
string = "Hello World"
string_slice = string[1:10] # "ello Worl" (index 1 up to 10)
string_last_chars = string[-5:] # "World" (5th index from last to the end)
H = string[0] # "H"
kardiz = "Python"
kardiz[0]
'P'
import re
# matches_position_start will be a list of starting index positions
matches_start = re.finditer(word.lower(), string.lower())
matches_position_start = [match.start() for match in matches_start]
# matches_position_end will be a list of ending index positions
matches_end = re.finditer(word.lower(), string.lower())
matches_position_end = [match.end() for match in matches_end]