Logo
/
Programming
/
Python Course
/

Conditions Inside the Body of the Loop

Python: Conditions Inside the Body of the Loop

You can execute instructions in the bodies of loops like you can in functions. This means you can use everything you learned before inside loops, such as conditional constructions.

Imagine a function that counts how many times a letter occurs in a sentence. Example of how it works:

count_chars('Fear cuts deeper than swords.', 'e')  # 4
# If nothing is found, the result is 0 matches
count_chars('Sansa', 'y')  # 0

Before you look at the contents of a function, think about this:

  • Is this an aggregation operation?
  • How will it check if a character occurs in a sentence?
def count_chars(string, char):
    index = 0
    count = 0
    while index < len(string):
        if string[index] == char:
            # We only count the matching characters
            count = count + 1
        # The counter is incremented anyway
        index = index + 1
    return count

This is an aggregation task. Although it doesn't count all the characters to calculate the amount, you still have to analyze each character. The key difference between this loop and the ones we looked at before is that there's a condition inside the body.

The count variable is incremented only when the character in question is the same as the expected one. Otherwise, it's a typical aggregate function that returns the number of characters you want.

Instructions

Implement the function count_hashtags(), which takes a post text and counts how many times the # symbol appears in it.

count_hashtags('New post #python #code')  # 2
count_hashtags('No tags here')            # 0
count_hashtags('#start and #finish')      # 2

If you've reached a deadlock it's time to ask your question in the «Discussions». How ask a question correctly:

  • Be sure to attach the test output, without it it's almost impossible to figure out what went wrong, even if you show your code. It's complicated for developers to execute code in their heads, but having a mistake before their eyes most probably will be helpful.
Found a bug? Have something to add? Pull requests are welcome!