Bird
Raised Fist0
Pythonprogramming~10 mins

Iterating over strings in Python - Step-by-Step Execution

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
Concept Flow - Iterating over strings
Start with string
Set index = 0
Check: index < length of string?
NoEXIT
Yes
Access character at index
Use character (e.g., print)
Increase index by 1
Back to Check
This flow shows how we start at the first character of a string and move through each character one by one until we reach the end.
Execution Sample
Python
word = "hello"
for char in word:
    print(char)
This code goes through each letter in the word "hello" and prints it on its own line.
Execution Table
IterationcharActionOutput
1"h"Print characterh
2"e"Print charactere
3"l"Print characterl
4"l"Print characterl
5"o"Print charactero
--Loop endsAll characters printed
💡 After printing 'o', no more characters left, loop ends
Variable Tracker
VariableStartAfter 1After 2After 3After 4After 5Final
charNone"h""e""l""l""o"None
Key Moments - 3 Insights
Why does the loop stop after printing 'o'?
The loop stops because it has gone through all characters in the string. As shown in the execution_table last row, there are no more characters left to process.
Is 'char' a number or a letter inside the loop?
Inside the loop, 'char' holds one letter (a string of length 1) from the word each time, as seen in the variable_tracker where 'char' changes to each letter.
Can we change characters inside the loop?
Strings are fixed in Python, so you cannot change characters directly. You can use the character for other actions, but not modify the original string.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of 'char' at iteration 3?
A"l"
B"e"
C"o"
D"h"
💡 Hint
Check the 'char' column in the execution_table at iteration 3
At which iteration does the loop finish printing all characters?
A4
B5
C6
D3
💡 Hint
Look at the exit_note and the last iteration row in execution_table
If the string was "hi", how many rows would the execution_table have before loop ends?
A2
B3
C4
D1
💡 Hint
Number of characters plus one exit row, see execution_table row count for 5-letter word
Concept Snapshot
Iterating over strings:
Use a for loop: for char in string:
Each loop step gives one character (char) from the string.
Loop runs until all characters are processed.
Strings are read-only; you can use but not change chars directly.
Full Transcript
This lesson shows how to go through each letter in a word using a for loop in Python. We start with the first letter, print it, then move to the next until we reach the end. The variable 'char' holds each letter one by one. The loop stops when there are no more letters. This is useful to read or use each character separately. Remember, strings cannot be changed inside the loop, only read.

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

  1. Step 1: Understand the for loop over a string

    The loop goes through each character in the string "hello" one by one.
  2. Step 2: Print each character

    Inside the loop, each letter is printed on its own line.
  3. Final Answer:

    Prints each letter of the word 'hello' on a new line -> Option A
  4. 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

  1. Step 1: Identify correct for loop syntax for strings

    In Python, to loop over characters in a string, use for variable in string:.
  2. 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.
  3. Final Answer:

    for char in text:
    print(char)
    -> Option C
  4. 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

  1. Step 1: Loop through each letter in 'code'

    The loop takes each character: 'c', 'o', 'd', 'e'.
  2. 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.
  3. Final Answer:

    CODE -> Option B
  4. 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

  1. Step 1: Understand the loop variable 'i'

    Here, 'i' takes each character from 'text', so 'i' is a letter, not an index.
  2. 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.
  3. Final Answer:

    Using 'i' as index causes TypeError -> Option D
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    count = 0 for ch in sentence: if ch in 'aeiouAEIOU': count += 1 print(count) -> Option A
  4. 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
  • Not incrementing count properly