Bird
Raised Fist0
Pythonprogramming~20 mins

String indexing (positive and negative) in Python - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
๐ŸŽ–๏ธ
String Indexing Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
Output of positive and negative indexing
What is the output of this Python code?
Python
s = "hello"
print(s[1], s[-1])
Ah o
Be o
Ce h
Do e
Attempts:
2 left
๐Ÿ’ก Hint
Remember, positive index starts at 0 from left, negative index starts at -1 from right.
โ“ Predict Output
intermediate
2:00remaining
Indexing with negative values
What will this code print?
Python
word = "python"
print(word[-3])
Ah
Bt
Co
Dn
Attempts:
2 left
๐Ÿ’ก Hint
Count backwards from the end starting at -1.
โ“ Predict Output
advanced
2:00remaining
Mixing positive and negative indexes
What is the output of this code snippet?
Python
text = "abcdef"
print(text[2], text[-4])
Ac d
Bd d
Cd c
Dc c
Attempts:
2 left
๐Ÿ’ก Hint
Remember positive index 2 is third character, negative index -4 counts from right.
โ“ Predict Output
advanced
2:00remaining
Index error with out-of-range negative index
What error does this code raise?
Python
s = "abc"
print(s[-4])
AIndexError
BNo error, prints 'a'
CTypeError
DKeyError
Attempts:
2 left
๐Ÿ’ก Hint
Negative index must be within the string length.
๐Ÿง  Conceptual
expert
2:00remaining
Length and indexing relationship
Given a string s of length 7, which index accesses the last character?
As[7]
Bs[-6]
Cs[6]
Ds[-7]
Attempts:
2 left
๐Ÿ’ก Hint
Positive indexes start at 0, so last index is length minus one.

Practice

(1/5)
1.

What does the index 0 represent in the string "hello"?

easy
A. The last letter 'o'
B. The middle letter 'l'
C. The first letter 'h'
D. An error because indexing starts at 1

Solution

  1. Step 1: Understand positive indexing

    In Python, string indexes start at 0 for the first character.
  2. Step 2: Apply to the string "hello"

    The character at index 0 is the first letter 'h'.
  3. Final Answer:

    The first letter 'h' -> Option C
  4. Quick Check:

    Index 0 = first letter 'h' [OK]
Hint: Index 0 always means the first letter [OK]
Common Mistakes:
  • Thinking indexing starts at 1
  • Confusing index 0 with last letter
  • Assuming negative indexes start at 0
2.

Which of the following is the correct way to get the last character of a string s in Python?

easy
A. s[1]
B. s[-1]
C. s[0]
D. s[len(s)]

Solution

  1. Step 1: Recall negative indexing

    Negative index -1 refers to the last character in a string.
  2. Step 2: Check each option

    s[1] is second character, s[0] is first, s[len(s)] causes error (index out of range).
  3. Final Answer:

    s[-1] -> Option B
  4. Quick Check:

    Last char = s[-1] [OK]
Hint: Use -1 to get last character quickly [OK]
Common Mistakes:
  • Using s[len(s)] causes IndexError
  • Confusing s[1] as last character
  • Forgetting negative indexes start at -1
3.

What is the output of this code?

word = "python"
print(word[2], word[-3])

medium
A. t h
B. t o
C. t t
D. h n

Solution

  1. Step 1: Find character at index 2

    Index 0='p', 1='y', 2='t'. So word[2] = 't'.
  2. Step 2: Find character at index -3

    Negative indexes count from end: -1='n', -2='o', -3='h'. So word[-3] = 'h'.
  3. Final Answer:

    t h -> Option A
  4. Quick Check:

    word[2] = 't', word[-3] = 'h' [OK]
Hint: Count from start with positive, from end with negative [OK]
Common Mistakes:
  • Mixing positive and negative indexes
  • Counting negative indexes starting at 0
  • Confusing letters at indexes 2 and -3
4.

Find the error in this code snippet:

text = "example"
print(text[-0])

medium
A. No error, prints 'e' (same as text[0])
B. SyntaxError due to invalid index
C. IndexError because -0 is out of range
D. IndexError: -0 is invalid

Solution

  1. Step 1: Understand -0 as index

    In Python, -0 is the same as 0, so text[-0] equals text[0].
  2. Step 2: Check output

    text[0] is 'e', the first letter, so it prints 'e' without error.
  3. Final Answer:

    No error, prints 'e' (same as text[0]) -> Option A
  4. Quick Check:

    -0 = 0 index, prints first letter 'e' [OK]
Hint: -0 equals 0, so no error and prints first letter [OK]
Common Mistakes:
  • Thinking -0 is invalid index
  • Expecting IndexError for -0
  • Confusing negative zero with positive zero
5.

Given the string s = "programming", which expression returns the substring "ing" using only negative indexes?

hard
A. s[-3:-0]
B. s[-4:-1]
C. s[-3:-1]
D. s[-3:]

Solution

  1. Step 1: Understand slicing with negative indexes

    s[-3:] means start at third last character to end.
  2. Step 2: Apply to "programming"

    Third last character is 'i', so s[-3:] = 'ing'. Other options exclude last character or cause empty slice.
  3. Final Answer:

    s[-3:] -> Option D
  4. Quick Check:

    Negative slice from -3 to end = 'ing' [OK]
Hint: Use s[-3:] to get last 3 letters easily [OK]
Common Mistakes:
  • Using s[-3:-1] misses last letter
  • Using s[-4:-1] gives 'min' not 'ing'
  • Using s[-3:-0] is invalid slice