String indexing helps you pick out single letters from a word or sentence. You can count from the start or the end.
String indexing (positive and negative) in Python
Start learning this pattern below
Jump into concepts and practice - no test required
string[index]
# index can be positive (start at 0) or negative (start at -1 from end)Positive index starts at 0 for the first character.
Negative index starts at -1 for the last character.
word = "hello" print(word[0]) # prints 'h' print(word[4]) # prints 'o'
word = "hello" print(word[-1]) # prints 'o' print(word[-5]) # prints 'h'
sentence = "Python" print(sentence[2]) # prints 't' print(sentence[-3]) # prints 'h'
This program shows how to get letters from a word using positive and negative indexes.
word = "friend" first_letter = word[0] last_letter = word[-1] third_letter = word[2] second_last_letter = word[-2] print(f"First letter: {first_letter}") print(f"Last letter: {last_letter}") print(f"Third letter: {third_letter}") print(f"Second last letter: {second_last_letter}")
Trying to use an index outside the string length will cause an error.
Strings are like a row of boxes, each box has one letter and a number (index).
Use positive indexes to count letters from the start (0, 1, 2...).
Use negative indexes to count letters from the end (-1, -2, -3...).
String indexing helps you pick any single letter easily.
Practice
What does the index 0 represent in the string "hello"?
Solution
Step 1: Understand positive indexing
In Python, string indexes start at 0 for the first character.Step 2: Apply to the string "hello"
The character at index 0 is the first letter 'h'.Final Answer:
The first letter 'h' -> Option CQuick Check:
Index 0 = first letter 'h' [OK]
- Thinking indexing starts at 1
- Confusing index 0 with last letter
- Assuming negative indexes start at 0
Which of the following is the correct way to get the last character of a string s in Python?
Solution
Step 1: Recall negative indexing
Negative index -1 refers to the last character in a string.Step 2: Check each option
s[1] is second character, s[0] is first, s[len(s)] causes error (index out of range).Final Answer:
s[-1] -> Option BQuick Check:
Last char = s[-1] [OK]
- Using s[len(s)] causes IndexError
- Confusing s[1] as last character
- Forgetting negative indexes start at -1
What is the output of this code?
word = "python" print(word[2], word[-3])
Solution
Step 1: Find character at index 2
Index 0='p', 1='y', 2='t'. So word[2] = 't'.Step 2: Find character at index -3
Negative indexes count from end: -1='n', -2='o', -3='h'. So word[-3] = 'h'.Final Answer:
t h -> Option AQuick Check:
word[2] = 't', word[-3] = 'h' [OK]
- Mixing positive and negative indexes
- Counting negative indexes starting at 0
- Confusing letters at indexes 2 and -3
Find the error in this code snippet:
text = "example" print(text[-0])
Solution
Step 1: Understand -0 as index
In Python, -0 is the same as 0, so text[-0] equals text[0].Step 2: Check output
text[0] is 'e', the first letter, so it prints 'e' without error.Final Answer:
No error, prints 'e' (same as text[0]) -> Option AQuick Check:
-0 = 0 index, prints first letter 'e' [OK]
- Thinking -0 is invalid index
- Expecting IndexError for -0
- Confusing negative zero with positive zero
Given the string s = "programming", which expression returns the substring "ing" using only negative indexes?
Solution
Step 1: Understand slicing with negative indexes
s[-3:] means start at third last character to end.Step 2: Apply to "programming"
Third last character is 'i', so s[-3:] = 'ing'. Other options exclude last character or cause empty slice.Final Answer:
s[-3:] -> Option DQuick Check:
Negative slice from -3 to end = 'ing' [OK]
- Using s[-3:-1] misses last letter
- Using s[-4:-1] gives 'min' not 'ing'
- Using s[-3:-0] is invalid slice
