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
Recall & Review
beginner
What does it mean to iterate over a string in Python?
Iterating over a string means going through each character one by one, like reading a word letter by letter.
Click to reveal answer
beginner
How do you write a simple loop to print each character of the string "hello"?
Use a for loop like this:
for char in "hello":
print(char)
Click to reveal answer
beginner
Can you change characters of a string by iterating over it?
No, strings are like frozen words. You can read each letter, but you cannot change them directly because strings are immutable.
Click to reveal answer
beginner
What will this code print?
for c in "abc":
print(c.upper())
It prints:
A
B
C
Each letter is converted to uppercase before printing.
Click to reveal answer
intermediate
How can you get the index of each character while iterating over a string?
Use the enumerate() function:
for index, char in enumerate("hello"):
print(index, char)
Click to reveal answer
What does the following code do?
for ch in "cat":
print(ch)
APrints each letter of the word 'cat' on a new line
BPrints the whole word 'cat' three times
CPrints the word 'cat' once
DCauses an error
✗ Incorrect
The loop goes through each character and prints it, so each letter appears on its own line.
Which statement is true about strings in Python?
AYou can change characters in a string by assigning new values
BStrings are lists of characters that can be modified
CStrings are immutable, so you cannot change characters directly
DStrings cannot be iterated over
✗ Incorrect
Strings cannot be changed after creation; they are immutable.
How do you get both the index and character when looping over a string?
AUse the split() method
BUse a normal for loop with range and indexing
CUse the len() function only
DUse the enumerate() function
✗ Incorrect
The enumerate() function gives both index and character during iteration.
What will this code print?
for c in "dog":
print(c.upper())
AD<br>O<br>G
Bdog
CDOG
Dd<br>o<br>g
✗ Incorrect
Each character is printed in uppercase on its own line.
Which of these is NOT a way to iterate over a string?
AUsing a while loop with an index
BUsing the string's reverse() method
CUsing enumerate() in a for loop
DUsing a for loop directly on the string
✗ Incorrect
Strings do not have a reverse() method; you can reverse with slicing but not by reverse() method.
Explain how to loop through each character in a string and print it.
Think about reading a word letter by letter.
You got /3 concepts.
Describe why you cannot change characters in a string while iterating over it.
Strings are like frozen words.
You got /3 concepts.
Practice
(1/5)
1. What does the following code do? for letter in "hello": print(letter)
easy
A. Prints each letter of the word 'hello' on a new line
B. Prints the whole word 'hello' once
C. Prints the length of the word 'hello'
D. Causes an error because strings can't be looped
Solution
Step 1: Understand the for loop over a string
The loop goes through each character in the string "hello" one by one.
Step 2: Print each character
Inside the loop, each letter is printed on its own line.
Final Answer:
Prints each letter of the word 'hello' on a new line -> Option A
Quick Check:
Loop over string prints letters individually [OK]
Hint: For loops over strings print letters one by one [OK]
Common Mistakes:
Thinking the whole string prints at once
Confusing string length with letters
Believing strings can't be looped
2. Which of the following is the correct syntax to loop over each character in the string text?
easy
A. for char to text: print(char)
B. for char in range(text): print(char)
C. for char in text: print(char)
D. for i in text.length: print(i)
Solution
Step 1: Identify correct for loop syntax for strings
In Python, to loop over characters in a string, use for variable in string:.
Step 2: Check each option
for char in text: print(char) uses correct syntax. The other options use invalid syntax like 'to' instead of 'in', range() on a string, or non-existent .length attribute.
Final Answer:
for char in text: print(char) -> Option C
Quick Check:
Correct for loop syntax over string is for char in text: print(char) [OK]
Hint: Use 'for char in string:' to loop letters [OK]
Common Mistakes:
Using range() on a string directly
Trying to use .length instead of len()
Using incorrect loop keywords
3. What is the output of this code?
word = "code"
result = ""
for ch in word:
result += ch.upper()
print(result)
medium
A. code
B. CODE
C. Code
D. cODe
Solution
Step 1: Loop through each letter in 'code'
The loop takes each character: 'c', 'o', 'd', 'e'.
Step 2: Convert each letter to uppercase and add to result
Each letter is changed to uppercase ('C', 'O', 'D', 'E') and added to the empty string result.
Final Answer:
CODE -> Option B
Quick Check:
Uppercase each letter and join = CODE [OK]
Hint: Uppercase letters inside loop to build new string [OK]
Common Mistakes:
Not converting letters to uppercase
Printing original string instead of result
Using += without initializing result
4. Find the error in this code:
text = "hello"
for i in text:
print(text[i])
medium
A. Variable 'text' is not defined
B. Missing colon after for loop
C. Loop should be 'for i in range(text):'
D. Using 'i' as index causes TypeError
Solution
Step 1: Understand the loop variable 'i'
Here, 'i' takes each character from 'text', so 'i' is a letter, not an index.
Step 2: Using 'text[i]' causes error
Since 'i' is a letter, using it as an index causes a TypeError because string indices must be integers.
Final Answer:
Using 'i' as index causes TypeError -> Option D
Quick Check:
Loop variable is letter, not index, so indexing fails [OK]
Hint: Loop variable is letter, not index; use range(len(text)) for indices [OK]
Common Mistakes:
Assuming loop variable is index
Trying to index string with a character
Confusing loop variable with range
5. Write code to count how many vowels are in the string sentence. Which code correctly does this?
hard
A. count = 0
for ch in sentence:
if ch in 'aeiouAEIOU':
count += 1
print(count)
B. count = 0
for i in range(len(sentence)):
if sentence[i] == 'aeiou':
count += 1
print(count)
C. count = 0
for ch in sentence:
if ch == 'a' or 'e' or 'i' or 'o' or 'u':
count += 1
print(count)
D. count = 0
for ch in sentence:
if ch in ['a','e','i','o','u']:
count = count + 1
print(count)
Solution
Step 1: Check vowel membership correctly
count = 0
for ch in sentence:
if ch in 'aeiouAEIOU':
count += 1
print(count) checks if each character is in the string of vowels (both lowercase and uppercase), which is correct.
Step 2: Verify counting logic
count = 0
for ch in sentence:
if ch in 'aeiouAEIOU':
count += 1
print(count) increments count correctly when a vowel is found and prints the total count.
Final Answer:
count = 0
for ch in sentence:
if ch in 'aeiouAEIOU':
count += 1
print(count) -> Option A
Quick Check:
Use 'in' with vowel string and increment count [OK]
Hint: Use 'if ch in "aeiouAEIOU"' to check vowels [OK]
Common Mistakes:
Using '==' to compare with multiple vowels
Checking membership incorrectly with list without uppercase