Skip to content
Related Articles

Related Articles

Python | Find position of a character in given string

View Discussion
Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 16 Aug, 2022
View Discussion
Improve Article
Save Article

Given a string and a character, your task is to find the first position of the character in the string using Python. These types of problems are very competitive programming where you need to locate the position of the character in a string. Let’s discuss a few methods to solve the problem.

Method 1: Get the position of a character in Python using rfind()

Python String rfind() method returns the highest index of the substring if found in the given string. If not found then it returns -1.

Python3




string = 'Geeks'
letter = 'k'
print(string.rfind(letter))


Output

3

Method 2: Get the position of a character in Python using regex

re.search() method either returns None (if the pattern doesn’t match) or re.MatchObject contains information about the matching part of the string. This method stops after the first match,

Python3




import re
string = 'Geeksforgeeks'
pattern = 'for'
match=(re.search(pattern, string))
 
#getting the starting index using match.start()
print ("starting index", match.start())
 
#Getting the start and end index in tuple format using match.span()
print ("start and end index", match.span())


Output

starting index 5
start and end index (5, 8)

Method 3: Get the position of a character in Python using index()

This Method raises Value Error in case the character is not present 

Python3




# Initializing string
ini_string1 = 'xyze'
 
# Character to find
c = "b"
# printing initial string and character
print ("initial_strings : ", ini_string1,
             "\ncharacter_to_find : ", c)
 
# Using index Method
try:
    res = ini_string1.index(c)
    print ("Character {} in string {} is present at {}".format(
                                  c, ini_string1, str(res + 1)))
except ValueError as e:
    print ("No such character available in string {}".format(ini_string1))


Output:

initial_strings :  xyze  
character_to_find :  b
No such character available in string xyze

Method 4: Get the position of a character in Python using the loop 

In this example, we will use the Python loop to find the position of a character in a given string.

Python3




# Initializing string
ini_string = 'abcdef'
 
# Character to find
c = "b"
# printing initial string and character
print("initial_string : ", ini_string, "\ncharacter_to_find : ", c)
 
# Using Naive Method
res = None
for i in range(0, len(ini_string)):
    if ini_string[i] == c:
        res = i + 1
        break
 
if res == None:
    print("No such character available in string")
else:
    print("Character {} is present at {}".format(c, str(res)))


Output

initial_string :  abcdef 
character_to_find :  b
Character b is present at 2

Method 5: Get the position of a character in Python using str.find

This method returns -1 in case the character is not present. 

Python3




# Initializing string
ini_string = 'abcdef'
ini_string2 = 'xyze'
 
# Character to find
c = "b"
# printing initial string and character
print("initial_strings : ", ini_string, " ",
      ini_string2, "\ncharacter_to_find : ", c)
 
# Using find Method
res1 = ini_string.find(c)
res2 = ini_string2.find(c)
 
if res1 == -1:
    print("No such character available in string {}".format(
        ini_string))
else:
    print("Character {} in string {} is present at {}".format(
        c, ini_string, str(res1 + 1)))
 
if res2 == -1:
    print("No such character available in string {}".format(
        ini_string2))
else:
    print("Character {} in string {} is present at {}".format(
        c, ini_string2, str(res2 + 1)))


Output:

initial_strings :  abcdef   xyze  
character_to_find :  b
Character b in string abcdef is present at 2
No such character available in string xyze

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!