Bird
Raised Fist0
Pythonprogramming~3 mins

Why String indexing (positive and negative) in Python? - Purpose & Use Cases

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
The Big Idea

Discover how a simple number can unlock any letter in your text instantly!

The Scenario

Imagine you have a long sentence and you want to find a specific letter or word inside it. Without a simple way to point to each letter, you might have to count every character by hand from the start every time.

The Problem

Counting letters manually is slow and easy to mess up. If you want the last letter, you have to count the whole sentence backward, which is confusing and wastes time.

The Solution

String indexing lets you quickly grab any letter by its position. Positive numbers count from the start, and negative numbers count from the end, so you can easily get letters without counting manually.

Before vs After
โœ— Before
text = 'hello'
# To get last letter manually:
last = text[len(text)-1]
โœ“ After
text = 'hello'
last = text[-1]
What It Enables

It makes finding and using parts of text fast and simple, like picking fruits from a basket by their position.

Real Life Example

When typing a password, you might want to check the first and last characters quickly to meet rules. String indexing helps you do that easily.

Key Takeaways

String indexing lets you access letters by position.

Positive indexes start from the beginning (0, 1, 2...).

Negative indexes start from the end (-1, -2, -3...).

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