Bird
Raised Fist0
Pythonprogramming~20 mins

String slicing behavior 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 Slicing Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
Output of negative step slicing
What is the output of this Python code?
text = 'abcdefg'
result = text[5:2:-1]
print(result)
Python
text = 'abcdefg'
result = text[5:2:-1]
print(result)
A'cde'
B'def'
C'fed'
D'edc'
Attempts:
2 left
๐Ÿ’ก Hint
Remember that slicing with a negative step goes backwards and excludes the stop index.
โ“ Predict Output
intermediate
2:00remaining
Slicing with omitted start and stop
What does this code print?
text = 'python'
result = text[::-2]
print(result)
Python
text = 'python'
result = text[::-2]
print(result)
A'nhy'
B'nohty'
C'nhot'
D'nht'
Attempts:
2 left
๐Ÿ’ก Hint
When start and stop are omitted with a negative step, slicing goes from end to start.
โ“ Predict Output
advanced
2:00remaining
Effect of out-of-range indices in slicing
What is the output of this code?
text = 'hello world'
result = text[3:100]
print(result)
Python
text = 'hello world'
result = text[3:100]
print(result)
A'lo world!'
B'lo world'
CIndexError
D'lo worl'
Attempts:
2 left
๐Ÿ’ก Hint
Slicing does not raise errors if stop index is beyond string length.
โ“ Predict Output
advanced
2:00remaining
Slicing with step zero
What happens when you run this code?
text = 'example'
result = text[::0]
print(result)
Python
text = 'example'
result = text[::0]
print(result)
AValueError
B'' (empty string)
C'example'
DTypeError
Attempts:
2 left
๐Ÿ’ก Hint
Step cannot be zero in slicing.
๐Ÿง  Conceptual
expert
3:00remaining
Understanding slice indices with negative start and stop
Given the string s = 'abcdefgh', what is the output of s[-3:-7:-1]?
Python
s = 'abcdefgh'
print(s[-3:-7:-1])
A'defg'
B'efgh'
C'dcba'
D'fedc'
Attempts:
2 left
๐Ÿ’ก Hint
Negative indices count from the end. The slice goes backwards from -3 to -7 (excluded).

Practice

(1/5)
1. What does the slice s[2:5] do on the string s = 'Python'?
easy
A. Extracts characters from index 5 to index 2
B. Extracts characters from index 2 to index 5 including both
C. Extracts characters from the start to index 5
D. Extracts characters from index 2 up to but not including index 5

Solution

  1. Step 1: Understand slice notation s[start:stop]

    The slice includes the start index but excludes the stop index.
  2. Step 2: Apply to s = 'Python' with s[2:5]

    Characters at indices 2, 3, 4 are 't', 'h', 'o'. Index 5 is excluded.
  3. Final Answer:

    Extracts characters from index 2 up to but not including index 5 -> Option D
  4. Quick Check:

    Slice excludes stop index [OK]
Hint: Remember stop index is excluded in slicing [OK]
Common Mistakes:
  • Including the stop index character
  • Confusing start and stop positions
  • Thinking slicing reverses string by default
2. Which of the following is the correct syntax to get every second character from string s starting from the first character?
easy
A. s[:2:2]
B. s[2::]
C. s[::2]
D. s[1:2]

Solution

  1. Step 1: Understand slice syntax s[start:stop:step]

    The step value controls the interval between characters taken.
  2. Step 2: Identify correct syntax for every second character from start

    s[::2] means start at 0, go to end, step by 2, so every second character.
  3. Final Answer:

    s[::2] -> Option C
  4. Quick Check:

    Step controls interval [OK]
Hint: Use empty start and stop with step for intervals [OK]
Common Mistakes:
  • Using wrong start index
  • Confusing step with stop
  • Using slice with only two colons incorrectly
3. What is the output of the following code?
s = 'abcdefg'
print(s[5:2:-1])
medium
A. 'cde'
B. 'fed'
C. 'edc'
D. 'gfed'

Solution

  1. Step 1: Understand slicing with negative step

    Negative step means slicing backwards. Start at index 5, stop before index 2.
  2. Step 2: Extract characters from s = 'abcdefg'

    Index 5 is 'f', then 'e' at 4, then 'd' at 3. Stop before 2 means exclude index 2 ('c'). So result is 'fed'.
  3. Final Answer:

    'fed' -> Option B
  4. Quick Check:

    Negative step slices backwards excluding stop [OK]
Hint: Negative step slices backward excluding stop index [OK]
Common Mistakes:
  • Including stop index when stepping backwards
  • Confusing forward and backward slicing
  • Misreading indices for negative step
4. Find the error in this code snippet:
s = 'hello'
print(s[4:1])
medium
A. No error, prints empty string
B. No error, prints 'llo'
C. SyntaxError due to invalid slice
D. RuntimeError due to wrong indices

Solution

  1. Step 1: Analyze slice s[4:1]

    Start index 4, stop index 1, default step is +1, so slice moves forward.
  2. Step 2: Understand slice behavior when start > stop with positive step

    Since start is after stop and step is positive, slice returns empty string without error.
  3. Final Answer:

    No error, prints empty string -> Option A
  4. Quick Check:

    Forward slice with start > stop = empty string [OK]
Hint: Forward slice with start > stop returns empty string [OK]
Common Mistakes:
  • Expecting an error for invalid slice
  • Expecting reversed substring without negative step
  • Confusing slice indices order
5. Given s = 'abcdefgh', which slice extracts the string 'hgfed'?
hard
A. s[7:2:-1]
B. s[7:3:-1]
C. s[7:1:-1]
D. s[7:0:-1]

Solution

  1. Step 1: Identify characters in 'hgfed'

    These are characters at indices 7 ('h'), 6 ('g'), 5 ('f'), 4 ('e'), 3 ('d').
  2. Step 2: Check slice s[7:2:-1]

    Start at index 7 ('h'), move backward to index 3 (stop before 2), so includes indices 7 to 3. This matches 'hgfed'.
  3. Final Answer:

    s[7:2:-1] -> Option A
  4. Quick Check:

    Negative step excludes stop index [OK]
Hint: Negative step excludes stop index, count backward carefully [OK]
Common Mistakes:
  • Including stop index in negative step slice
  • Choosing wrong stop index
  • Confusing slice direction with step sign