📖 Scenario: Imagine you are analyzing a short message to find out how many times each letter appears. This is useful in text analysis, like counting letters in a secret code or checking letter usage in a message.
🎯 Goal: You will build a program that counts how many times each character appears in a given text string.
📋 What You'll Learn
Create a string variable with a specific message
Create an empty dictionary to store character counts
Use a for loop to count each character's frequency
Print the dictionary showing character counts
💡 Why This Matters
🌍 Real World
Counting character frequency helps in text analysis, cryptography, and understanding language patterns.
💼 Career
This skill is useful for data analysis, software development, and any job involving text processing or natural language tasks.
Progress0 / 4 steps
1
Create the message string
Create a string variable called message and set it to the exact value "hello world".
DSA Python
Hint
Use quotes to create the string exactly as shown.
2
Create an empty dictionary for counts
Create an empty dictionary called char_counts to store the frequency of each character.
DSA Python
Hint
Use curly braces to create an empty dictionary.
3
Count each character's frequency
Use a for loop with variable char to go through each character in message. Inside the loop, update char_counts to count how many times each character appears.
DSA Python
Hint
Check if the character is already in the dictionary. If yes, add 1. If no, set it to 1.
4
Print the character counts
Print the char_counts dictionary to show the frequency of each character in the message.
DSA Python
Hint
Use print(char_counts) to display the dictionary.
Practice
(1/5)
1. What does character frequency counting help us find in a string?
easy
A. How many times each character appears
B. The length of the string
C. The first character in the string
D. The position of the last character
Solution
Step 1: Understand the purpose of frequency counting
Frequency counting means counting how many times each character appears in a string.
Step 2: Compare options with the definition
Only How many times each character appears matches the purpose of character frequency counting.
Final Answer:
How many times each character appears -> Option A
Quick Check:
Frequency counting = count characters [OK]
Hint: Frequency counting means counting characters [OK]
Common Mistakes:
Confusing frequency with string length
Thinking it finds character positions
Mixing frequency with sorting
2. Which of the following Python code snippets correctly counts character frequency in string s?
easy
A. freq = 0; for ch in s: freq += 1
B. freq = []; for ch in s: freq.append(ch)
C. freq = {}; for ch in s: freq[ch] = freq.get(ch, 0) + 1
D. freq = {}; for ch in s: freq[ch] = 1
Solution
Step 1: Analyze each code snippet
freq = {}; for ch in s: freq[ch] = freq.get(ch, 0) + 1 uses a dictionary and increments count for each character correctly. freq = []; for ch in s: freq.append(ch) just collects characters in a list. freq = 0; for ch in s: freq += 1 counts total characters, not frequency per character. freq = {}; for ch in s: freq[ch] = 1 sets frequency to 1 always, ignoring repeats.
Step 2: Confirm correct frequency counting logic
Only freq = {}; for ch in s: freq[ch] = freq.get(ch, 0) + 1 correctly counts how many times each character appears.
Final Answer:
freq = {}; for ch in s: freq[ch] = freq.get(ch, 0) + 1 -> Option C
Quick Check:
Use dict with get() to count [OK]
Hint: Use dict with get() to count frequencies [OK]
Common Mistakes:
Using list instead of dict for counting
Overwriting counts instead of incrementing
Counting total length instead of per character
3. What is the output of this code?
text = 'hello'
freq = {}
for ch in text:
freq[ch] = freq.get(ch, 0) + 1
print(freq)
medium
A. {'h': 1, 'e': 1, 'l': 1, 'o': 1}
B. {'h': 1, 'e': 1, 'l': 2, 'o': 1}
C. {'h': 1, 'e': 1, 'l': 3, 'o': 1}
D. {'h': 1, 'e': 1, 'l': 2}
Solution
Step 1: Count characters in 'hello'
Characters: h(1), e(1), l(2), o(1)
Step 2: Check code logic
Code correctly counts each character's frequency using dict and get().
Final Answer:
{'h': 1, 'e': 1, 'l': 2, 'o': 1} -> Option B
Quick Check:
Count 'l' twice, others once [OK]
Hint: Count repeated letters carefully [OK]
Common Mistakes:
Counting 'l' only once
Missing last character
Incorrect dictionary format
4. Find the error in this code that counts character frequency:
text = 'apple'
freq = {}
for ch in text:
freq[ch] += 1
print(freq)
medium
A. freq[ch] is used before initialization
B. Loop variable name is wrong
C. print statement syntax error
D. String 'apple' is invalid
Solution
Step 1: Identify how freq[ch] is updated
freq[ch] += 1 tries to add 1 to freq[ch] without initializing freq[ch] first.
Step 2: Understand dictionary key initialization
Since freq is empty initially, freq[ch] does not exist and causes an error.
Final Answer:
freq[ch] is used before initialization -> Option A
Quick Check:
Initialize dict keys before incrementing [OK]
Hint: Initialize dict keys before incrementing [OK]
Common Mistakes:
Assuming dict keys auto-initialize
Ignoring error messages
Changing loop variable unnecessarily
5. Given a string s = 'banana', which code snippet correctly returns a dictionary with only characters that appear more than once?
hard
A. freq = {ch: 1 for ch in s if s.count(ch) > 1}
B. freq = {ch: s.count(ch) for ch in s}
C. freq = {ch for ch in s if s.count(ch) > 1}
D. freq = {ch: s.count(ch) for ch in set(s) if s.count(ch) > 1}
Solution
Step 1: Understand the goal
We want a dictionary with characters appearing more than once and their counts.
Step 2: Analyze each option
freq = {ch: 1 for ch in s if s.count(ch) > 1} sets count to 1 always, ignoring actual counts. freq = {ch: s.count(ch) for ch in set(s) if s.count(ch) > 1} uses set(s) to avoid duplicates and filters counts > 1 correctly. freq = {ch for ch in s if s.count(ch) > 1} creates a set instead of dictionary with counts. freq = {ch: s.count(ch) for ch in s} includes all characters regardless of count.
Final Answer:
freq = {ch: s.count(ch) for ch in set(s) if s.count(ch) > 1} -> Option D
Quick Check:
Use set to avoid duplicates and filter counts [OK]
Hint: Use set(s) and filter counts > 1 [OK]
Common Mistakes:
Not using set to avoid duplicate keys
Assigning wrong counts
Including characters with single occurrence
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.