Bird
Raised Fist0
Pythonprogramming~10 mins

Searching and replacing text in Python - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to replace all occurrences of 'cat' with 'dog' in the text.

Python
text = 'The cat sat on the cat mat.'
new_text = text.[1]('cat', 'dog')
print(new_text)
Drag options to blanks, or click blank then click option'
Areplace
Bfind
Csplit
Djoin
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using 'find' instead of 'replace' which only finds the position.
Using 'split' or 'join' which do not replace text directly.
2fill in blank
medium

Complete the code to replace only the first occurrence of 'apple' with 'orange'.

Python
text = 'apple banana apple grape'
new_text = text.[1]('apple', 'orange', 1)
print(new_text)
Drag options to blanks, or click blank then click option'
Acount
Bfind
Creplace
Dindex
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using 'find' which only locates the substring.
Using 'count' or 'index' which do not replace text.
3fill in blank
hard

Fix the error in the code to replace 'blue' with 'red' in the string.

Python
text = 'blue sky'
new_text = text.[1]('blue', 'red')
print(new_text)
Drag options to blanks, or click blank then click option'
Areplace
BReplace
Creplac
Dsubstitute
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using capitalized method names like 'Replace'.
Misspelling the method name.
4fill in blank
hard

Fill both blanks to create a dictionary with words as keys and their lengths as values, but only for words longer than 3 letters.

Python
words = ['apple', 'bat', 'carrot', 'dog']
lengths = {word: [1] for word in words if len(word) [2] 3}
print(lengths)
Drag options to blanks, or click blank then click option'
Alen(word)
B<=
C>
Dword
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using the word itself instead of its length.
Using the wrong comparison operator.
5fill in blank
hard

Fill all three blanks to create a dictionary with uppercase words as keys and their lengths as values, only for words longer than 4 letters.

Python
words = ['tree', 'house', 'car', 'elephant']
result = { [1]: [2] for w in words if len(w) [3] 4 }
print(result)
Drag options to blanks, or click blank then click option'
Aw.upper()
Blen(w)
C>
Dw
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using the word as key without uppercase.
Using wrong comparison operator or value.

Practice

(1/5)
1. What does the replace method do in Python strings?
easy
A. It finds a specified substring and replaces it with another substring.
B. It deletes a substring from the string permanently.
C. It changes the original string directly without creating a new one.
D. It counts how many times a substring appears in the string.

Solution

  1. Step 1: Understand the purpose of replace()

    The replace method searches for a substring and replaces it with another substring.
  2. Step 2: Check if it modifies original string

    Strings are immutable in Python, so replace returns a new string without changing the original.
  3. Final Answer:

    It finds a specified substring and replaces it with another substring. -> Option A
  4. Quick Check:

    replace() = find and change substring [OK]
Hint: Remember: replace returns new string, original stays same [OK]
Common Mistakes:
  • Thinking replace changes the original string
  • Confusing replace with delete or count methods
  • Assuming replace modifies in-place
2. Which of the following is the correct syntax to replace all occurrences of 'cat' with 'dog' in a string text?
easy
A. text.replace('cat', 'dog', all=True)
B. text.replace('cat', 'dog')
C. text.replace('cat' -> 'dog')
D. text.replace('cat', 'dog', count=0)

Solution

  1. Step 1: Recall replace() syntax

    The correct syntax is string.replace(old, new[, count]), where old and new are strings.
  2. Step 2: Analyze options

    text.replace('cat', 'dog') matches the correct syntax. Options A, B, and D use invalid syntax or parameters.
  3. Final Answer:

    text.replace('cat', 'dog') -> Option B
  4. Quick Check:

    replace(old, new) syntax = text.replace('cat', 'dog') [OK]
Hint: Use replace(old, new) without extra keywords [OK]
Common Mistakes:
  • Using arrows or keywords inside replace()
  • Adding unsupported parameters like all=True
  • Confusing parameter order
3. What will be the output of this code?
text = 'apple apple apple'
new_text = text.replace('apple', 'orange', 2)
print(new_text)
medium
A. 'apple orange orange'
B. 'orange orange orange'
C. 'orange orange apple'
D. 'apple apple orange'

Solution

  1. Step 1: Understand replace with count

    The third argument 2 limits replacements to first two occurrences.
  2. Step 2: Apply replacements

    First two 'apple' become 'orange', last remains 'apple'. Result: 'orange orange apple'.
  3. Final Answer:

    'orange orange apple' -> Option C
  4. Quick Check:

    replace with count=2 changes first two only [OK]
Hint: Count limits how many replacements happen [OK]
Common Mistakes:
  • Replacing all occurrences ignoring count
  • Replacing from the end instead of start
  • Miscounting number of replacements
4. The following code tries to replace 'blue' with 'red' but causes an error. What is the error?
text = 'blue sky'
text.replace('blue', 'red', 'all')
print(text)
medium
A. SyntaxError due to wrong quotes
B. AttributeError because replace is not a string method
C. No error, prints 'red sky'
D. TypeError because 'all' is not an integer for count

Solution

  1. Step 1: Check replace() parameters

    The third parameter must be an integer count, but 'all' is a string.
  2. Step 2: Identify error type

    Passing a string instead of int causes a TypeError at runtime.
  3. Final Answer:

    TypeError because 'all' is not an integer for count -> Option D
  4. Quick Check:

    replace count must be int, not string [OK]
Hint: Count parameter must be integer, not string [OK]
Common Mistakes:
  • Using strings instead of integers for count
  • Expecting replace to modify original string
  • Confusing error types
5. You have a paragraph stored in text. You want to replace only the first 3 occurrences of the word 'error' with 'issue'. Which code snippet correctly does this?
hard
A. new_text = text.replace('error', 'issue', 3)
B. new_text = text.replace('error', 'issue', count=3)
C. new_text = text.replace('error', 'issue', '3')
D. new_text = text.replace('error', 'issue')[:3]

Solution

  1. Step 1: Use replace with count parameter

    To replace only first 3 occurrences, use replace(old, new, count) with count=3.
  2. Step 2: Analyze options

    new_text = text.replace('error', 'issue', 3) uses correct syntax. new_text = text.replace('error', 'issue', count=3) uses invalid keyword argument. new_text = text.replace('error', 'issue', '3') passes count as string. new_text = text.replace('error', 'issue')[:3] slices string incorrectly.
  3. Final Answer:

    new_text = text.replace('error', 'issue', 3) -> Option A
  4. Quick Check:

    replace(old, new, 3) replaces first 3 only [OK]
Hint: Use third argument as integer count for limited replacements [OK]
Common Mistakes:
  • Using keyword count instead of positional argument
  • Passing count as string instead of int
  • Trying to slice string after replace