MASTER YOUR LOGIC BUILDING:Phase 5 - Category 2: Counting & Analysis

Mastering phase 5 - category 2: counting & analysis concepts and implementation.

Counting & Analysis

Why This Matters

Imagine you're proofreading an essay. You might ask: How many vowels are in this paragraph? Which letter appears most often? How many digits are in this password? Counting and analyzing strings is like being a detective — you scan each character, decide what type it is, and keep a running tally.

What You'll Learn

  • How to count vowels, consonants, digits, and special characters
  • How to use Python's character-checking methods (.isalpha(), .isdigit(), etc.)
  • How to build a frequency dictionary (how many times each character appears)
  • A simple loop pattern you can reuse for almost any counting problem

The Core Pattern: Scan and Count

Almost every counting problem follows the same three steps:

  1. Start with a counter at 0 (or an empty dictionary)
  2. Loop through each character
  3. Update the counter when a character matches your rule
text = "Hello"
vowel_count = 0
vowels = "aeiouAEIOU"

for char in text:
    if char in vowels:
        vowel_count += 1

print(vowel_count)   # 2 (e and o)

Character Type Helpers

Python gives you handy methods so you don't have to check every case manually:

char = 'A'
char.isalpha()   # True  — is it a letter?
char.isdigit()   # False — is it 0-9?
char.isupper()   # True  — is it uppercase?
char.islower()   # False
char.isspace()   # False — is it a space/tab/newline?

Step-by-Step: Count Vowels and Consonants

Given "Hello World":

  1. Set vowel_count = 0 and consonant_count = 0
  2. Loop through each character
  3. Skip non-letters (like spaces)
  4. If it's a vowel → add 1 to vowel count; otherwise add 1 to consonant count
text = "Hello World"
vowels = "aeiouAEIOU"
vowel_count = 0
consonant_count = 0

for char in text:
    if char.isalpha():
        if char in vowels:
            vowel_count += 1
        else:
            consonant_count += 1

print(f"Vowels: {vowel_count}, Consonants: {consonant_count}")
# Vowels: 3, Consonants: 7

Frequency Dictionary: Who Appears How Often?

text = "banana"
freq = {}

for char in text:
    freq[char] = freq.get(char, 0) + 1

print(freq)   # {'b': 1, 'a': 3, 'n': 2}

freq.get(char, 0) means: "Give me the current count for this character, or 0 if I've never seen it before."

Common Mistakes & Tips

  • Counting spaces as letters — use char.isalpha() when you only want actual letters
  • Forgetting uppercase vowels — include both "aeiou" and "AEIOU", or use .lower() first
  • Starting counters at 1 instead of 0 — always initialize to zero
  • Tip: Draw a small table on paper and fill it in by hand before writing code — it helps you spot logic errors early

Practice Focus

  • Count vowels and consonants in a user-entered sentence
  • Count how many digits appear in a string like "Room 42B"
  • Build a frequency map and find the most common character
  • Count uppercase vs lowercase letters separately

Once you can count confidently, problems like "remove duplicates" and "find the most frequent letter" become much easier!

Hands-on Examples

Count Vowels and Consonants

# Take string input
text = input("Enter a string: ")

# Count vowels and consonants
vowels = "aeiouAEIOU"
vowel_count = 0
consonant_count = 0

for char in text:
    if char.isalpha():  # Only count letters
        if char in vowels:
            vowel_count += 1
        else:
            consonant_count += 1

print(f"Vowels: {vowel_count}")
print(f"Consonants: {consonant_count}")

Iterate through string, check if character is letter. If vowel, increment vowel count; otherwise increment consonant count.