Python String index()

In this tutorial, we will learn about the Python index() method with the help of examples.

The index() method returns the index of a substring inside the string (if found). If the substring is not found, it raises an exception.


text = 'Python is fun'

# find the index of is
result = text.index('is')

# Output: 7

1. index() Syntax

It’s syntax is:

str.index(sub[, start[, end]] )

2. index() Parameters

The index() method takes three parameters:

  • sub – substring to be searched in the string str.
  • start and end(optional) – substring is searched within str[start:end]

3. index() Return Value

  • If substring exists inside the string, it returns the lowest index in the string where substring is found.
  • If substring doesn’t exist inside the string, it raises a ValueError exception.

The index() method is similar to the find() method for strings.

The only difference is that find() method returns -1 if the substring is not found, whereas index() throws an exception.

4. Example 1: index() With Substring argument Only

sentence = 'Python programming is fun.'

result = sentence.index('is fun')
print("Substring 'is fun':", result)

result = sentence.index('Java')
print("Substring 'Java':", result)


Substring 'is fun': 19

Traceback (most recent call last):
  File "<string>", line 6, in 
    result = sentence.index('Java')
ValueError: substring not found

Note: Index in Python starts from 0 and not 1. So the occurrence is 19 and not 20.

5. Example 2: index() With start and end Arguments

sentence = 'Python programming is fun.'

# Substring is searched in 'gramming is fun.'
print(sentence.index('ing', 10))

# Substring is searched in 'gramming is '
print(sentence.index('g is', 10, -4))

# Substring is searched in 'programming'
print(sentence.index('fun', 7, 18))


Traceback (most recent call last):
  File "<string>", line 10, in 
    print(quote.index('fun', 7, 18))
ValueError: substring not found