Bird
Raised Fist0
DSA Pythonprogramming~10 mins

String Traversal and Character Access in DSA Python - Execution Trace

Choose your learning style10 modes available
Concept Flow - String Traversal and Character Access
Start at index 0
↓
Check: index < length?
No→Stop traversal
Yes↓
Access character at index
↓
Process character (e.g., print)
↓
Increment index by 1
↩Back to Check
This flow shows how we start from the first character of a string, check if we are still inside the string length, access the character, process it, then move to the next character until we reach the end.
Execution Sample
DSA Python
s = "hello"
for i in range(len(s)):
    print(s[i])
This code goes through each character in the string 'hello' and prints it one by one.
Execution Table
StepIndex iCondition i < len(s)Character Accessed s[i]ActionOutput
10True'h'Print characterh
21True'e'Print charactere
32True'l'Print characterl
43True'l'Print characterl
54True'o'Print charactero
65FalseN/AStop loopNo more characters
💡 Index i reaches 5, condition 5 < 5 is False, so loop stops
Variable Tracker
VariableStartAfter 1After 2After 3After 4After 5Final
iN/A012345
s[i]N/A'h''e''l''l''o'N/A
Key Moments - 3 Insights
Why does the loop stop when i equals 5 even though the string length is 5?
The loop condition checks if i < len(s). When i is 5, 5 < 5 is False, so the loop stops before accessing s[5], which would be out of range. See execution_table step 6.
What happens if we try to access s[i] when i is equal to the string length?
Accessing s[i] when i equals the string length causes an error because string indices go from 0 to length-1. The code avoids this by stopping the loop before i reaches length, as shown in execution_table step 6.
Why do we use range(len(s)) instead of just range(s)?
len(s) gives the number of characters in the string. range(len(s)) creates numbers from 0 up to length-1, which are valid indices for the string. Using range(s) would cause an error because s is a string, not a number.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what character is accessed at step 3?
A'e'
B'l'
C'h'
D'o'
💡 Hint
Check the 'Character Accessed s[i]' column at step 3 in the execution_table.
At which step does the loop condition become false?
AStep 5
BStep 4
CStep 6
DStep 3
💡 Hint
Look at the 'Condition i < len(s)' column in the execution_table to find when it becomes False.
If the string was "hi" instead of "hello", how many times would the loop run?
A2 times
B3 times
C5 times
D1 time
💡 Hint
Check the variable_tracker for i values and relate to string length.
Concept Snapshot
String Traversal and Character Access:
- Use a loop from 0 to len(string)-1
- Access characters by s[i]
- Stop before i reaches len(s) to avoid errors
- Prints each character one by one
- Commonly done with for i in range(len(s))
Full Transcript
This lesson shows how to go through each character in a string one by one. We start at index 0 and check if the index is less than the string length. If yes, we access the character at that index and print it. Then we move to the next index. We repeat this until the index reaches the string length, where we stop to avoid errors. The example code prints each character of 'hello' on its own line. The execution table shows each step with the index, condition check, character accessed, and output. The variable tracker shows how the index and character change each step. Key moments explain why the loop stops before the string length and why we use len(s) in the loop. The quiz tests understanding of character access, loop stopping, and how string length affects loop runs.

Practice

(1/5)
1. What does the expression my_string[2] return when my_string = 'hello'?
easy
A. An error because index 2 is out of range
B. The first character 'h'
C. The third character 'l'
D. The last character 'o'

Solution

  1. Step 1: Understand string indexing

    Strings in Python start indexing at 0, so index 2 means the third character.
  2. Step 2: Identify the character at index 2

    In 'hello', index 0='h', index 1='e', index 2='l'.
  3. Final Answer:

    The third character 'l' -> Option C
  4. Quick Check:

    Index 2 of 'hello' is 'l' [OK]
Hint: Remember string indexing starts at zero [OK]
Common Mistakes:
  • Thinking indexing starts at 1
  • Confusing index 2 with last character
  • Assuming index 2 is out of range
2. Which of the following is the correct way to loop through each character in the string text = 'abc'?
easy
A. for char in text: print(char)
B. for char in text[1]: print(char)
C. for i in range(text): print(i)
D. for i in text.length: print(text[i])

Solution

  1. Step 1: Understand how to loop over a string

    Using for char in text iterates over each character directly.
  2. Step 2: Check each option

    for i in range(text): print(i) tries to use range on a string (invalid). for char in text[1]: print(char) uses text[1] which is a single character, not iterable. for i in text.length: print(text[i]) uses text.length which is invalid in Python.
  3. Final Answer:

    for char in text: print(char) -> Option A
  4. Quick Check:

    Loop over string directly with for-in [OK]
Hint: Use 'for char in string' to loop characters [OK]
Common Mistakes:
  • Using range() directly on string
  • Using incorrect string length property
  • Trying to loop over a single character
3. What is the output of the following code?
word = 'python'
result = ''
for i in range(len(word)):
    if i % 2 == 0:
        result += word[i]
print(result)
medium
A. pyo
B. pto
C. pyhn
D. pthn

Solution

  1. Step 1: Understand the loop and condition

    The loop runs from i=0 to i=5 (length 6). It adds characters at even indices (0,2,4).
  2. Step 2: Identify characters at even indices

    word[0]='p', word[2]='t', word[4]='o'. Concatenate: 'pto'.
  3. Final Answer:

    pto -> Option B
  4. Quick Check:

    Even indices form 'pto' [OK]
Hint: Pick characters at even indexes using modulo [OK]
Common Mistakes:
  • Including characters at odd indexes
  • Confusing index counting starting at 1
  • Adding characters incorrectly
4. Find the error in the following code that tries to print each character of text = 'data':
for i in range(len(text)):
    print(text(i))
medium
A. Using parentheses instead of square brackets for indexing
B. Missing colon after for loop
C. Using len() on string is invalid
D. Variable i is not defined

Solution

  1. Step 1: Identify the indexing syntax error

    In Python, to access a character by index, square brackets [] are used, not parentheses ().
  2. Step 2: Check the code line

    The code uses text(i) which is a function call, causing a TypeError.
  3. Final Answer:

    Using parentheses instead of square brackets for indexing -> Option A
  4. Quick Check:

    Use text[i] to access characters, not text(i) [OK]
Hint: Use square brackets [] for indexing strings [OK]
Common Mistakes:
  • Using parentheses instead of brackets
  • Forgetting colon after for loop (not here)
  • Misunderstanding len() usage
5. Given the string s = 'abracddabba', write code to create a new string containing only the characters at odd indices. What is the resulting string?
hard
A. bacdbr
B. brcdr
C. aracaa
D. badab

Solution

  1. Step 1: Identify odd indices in the string

    Indices start at 0. Odd indices are 1,3,5,7,9.
  2. Step 2: Extract characters at odd indices

    Characters: s[1]='b', s[3]='a', s[5]='d', s[7]='a', s[9]='b'. Concatenate: 'b'+'a'+'d'+'a'+'b' = 'badab'.
  3. Final Answer:

    badab -> Option D
  4. Quick Check:

    Characters at odd positions form 'badab' [OK]
Hint: Pick characters where index % 2 == 1 [OK]
Common Mistakes:
  • Including even indices
  • Starting index count at 1 instead of 0
  • Mixing up characters order
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard