Answer:
Here is the Python function:
def count_occurrences (string1 , string2): # method that takes two strings as parameter and returns how many times second string occurs in first
count = 0 #counts number of occurrence of string2 in string1
for word in string1: #iterates through each word of the string1
for character in word: #iterates through each character of each word in string1
if character == string2: # checks if the character in string1 is equal to the character of string2
count = count + 1 #adds 1 to the count of string2 in string1
return count #returns number of times the string2 occurs in string1
#in order to check the working of the function add the following lines to the code:
first_str = input("Enter the first string: ") #prompts user to enter first string
second_str = input("Enter the second string (one character long): ")
#prompts user to enter second string which should be one character long
occurrence = count_occurrences(first_str,second_str) #calls count_occurrences method by passing both strings to it
print(second_str,"occurs",occurrence,"times in",first_str) #prints how many times the second_str occurs in the first_str on output screen
Explanation:
The program is well explained in the comments added to each statement of the above code. I will explain the program with an example:
Suppose
string1 = "hello world"
string2 = 'l'
So the method count_occurrences() should return how many times l occurs in hello world.
count is used to count the number of occurrences of l in hello world. It is initialized to 0.
The first loop iterates through each word of string1. The first word of string1 is "hello"
The second loop iterates through each character/letter of each word. So the first letter of "hello" word is 'h'.
The if condition if character == string2: checks if the character is equal to string2 i.e. l.
character = "h"
string2 = "l"
The are not equal so the program moves to the next character of word hello which is e. The if condition again evaluates to false because e is not equal to l. So the program moves to the next character of word hello which is l.
This time the if condition evaluates to true because
character = "l"
string2 = "l"
character == string2
l == l
So the if part is executed which has the following statement:
count = count + 1
So the count is added to 1. count was 0 previously. Now
count = 1
Next the program moves to the next character of word hello which is l. This time the if condition evaluates to true because the character l matches with string2. So count is again incremented to 1. count = 2.
Next the program moves to the next character of word hello which is o. The if condition evaluates to false as o does not match with string2 i.e. l. So the count remains 2.
Next the first loop moves to the next word of the string1 = "world". The inner (second) for loop iterates through each character of "world" from "w" to "d" and checks if any character is equal to string2. Only one character is equal to string2 in "world". So count is incremented to 1. Hence count = 3
After the loop ends the statement return count returns the number of times string2 occurs in the string1. So the output is:
l occurs 3 times in hello world