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') # 0Before 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 countThis 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') # 2If 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.
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') # 0Before 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 countThis 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') # 2If 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.
Your exercise will be checked with these tests:
import solution
def test1():
assert solution.count_hashtags("New post #python #code") == 2
assert solution.count_hashtags("No tags here") == 0
assert solution.count_hashtags("#start and #finish") == 2
assert solution.count_hashtags("###") == 3Teacher's solution will be available in:
20:00
