MASTER YOUR LOGIC BUILDING:Phase 5 - Category 5: Word-level Operations

Mastering phase 5 - category 5: word-level operations concepts and implementation.

Word-level Operations

Why This Matters

So far you've mostly worked character by character. But sentences are made of words — and many problems care about whole words: Which is the longest? How many words start with a vowel? How do you capitalize each one? Think of splitting a sentence like cutting it into individual cards — then you can sort, filter, or rewrite each card.

What You'll Learn

  • How to split a string into words with .split() and join them back with .join()
  • How to find the longest or shortest word
  • How to capitalize or transform words individually
  • How to filter words by their properties (length, first letter, etc.)

Split → Process → Join

This three-step recipe solves most word-level problems:

text = "python is awesome"
words = text.split()        # ['python', 'is', 'awesome']
# ... do something with words ...
result = ' '.join(words)    # join back with spaces

.split() with no argument splits on any whitespace (spaces, tabs). .join() puts them back together.

Step-by-Step: Find the Longest Word

Given "Python programming is fun":

  1. Split into words: ['Python', 'programming', 'is', 'fun']
  2. Start with the first word as your "best so far"
  3. Compare each word's length — update if you find a longer one
  4. Report the winner
text = "Python programming is fun"
words = text.split()

longest = words[0]
for word in words:
    if len(word) > len(longest):
        longest = word

print(longest)   # "programming"

Capitalize Each Word (Title Style)

text = "hello world"
words = text.split()
capitalized = []

for word in words:
    if len(word) > 0:
        new_word = word[0].upper() + word[1:].lower()
        capitalized.append(new_word)

print(' '.join(capitalized))   # "Hello World"

First character → uppercase. Rest → lowercase. Then glue words back together.

Filtering Words by Rules

Words with even length:

words = "cat dog elephant".split()
even_words = [w for w in words if len(w) % 2 == 0]
print(even_words)   # ['dog']

Words starting with a vowel:

vowels = "aeiouAEIOU"
starts_with_vowel = [w for w in words if w[0] in vowels]

Quick Shortcuts (Nice to Know)

words = text.split()
longest = max(words, key=len)           # longest word
shortest = min(words, key=len)          # shortest word
count = len(words)                      # number of words

These are handy once you understand the loop version first.

Common Mistakes & Tips

  • Forgetting empty strings after split — " hello ".split() still gives ['hello'], but check len(words) == 0 for safety
  • Joining without spaces — ''.join(words) glues words together; use ' '.join(words) for normal sentences
  • Capitalizing empty words — check len(word) > 0 before accessing word[0]
  • Tip: Print words right after splitting — seeing the list makes the next step much clearer

Practice Focus

  • Find the longest and shortest word in a sentence
  • Count how many words have exactly 3 letters
  • Capitalize the first letter of every word
  • Print only words that start with a vowel
  • Count words where the first and last letter are the same (like "level")

Word-level thinking is the bridge between basic strings and the mixed logic problems coming in Phase 6. You're almost there!

Hands-on Examples

Find Longest Word

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

# Split into words
words = text.split()

if len(words) == 0:
    print("No words found")
else:
    # Find longest word
    longest = words[0]
    for word in words:
        if len(word) > len(longest):
            longest = word
    
    print(f"Longest word: {longest}")
    print(f"Length: {len(longest)}")

Split string into words, iterate through words, track word with maximum length. Compare length of each word with current longest.