String Indexing and Slicing in Python

String Indexing and Slicing in Python

In Python, strings are sequences of characters that can be accessed using indexing and slicing operations. Here’s a comprehensive explanation with examples:

Indexing

Strings in Python are zero-indexed, meaning the first character has index 0.

python

text = "Python"

Index positions:

text

P y t h o n
0 1 2 3 4 5

Positive Indexing (left to right)

python

print(text[0])   # 'P' - first character
print(text[1])   # 'y' - second character
print(text[5])   # 'n' - last character

Negative Indexing (right to left)

Negative indices count from the end of the string:

text

P  y  t  h  o  n
-6 -5 -4 -3 -2 -1

python

print(text[-1])  # 'n' - last character
print(text[-2])  # 'o' - second last character
print(text[-6])  # 'P' - first character

Slicing

Slicing allows you to extract a substring using the syntax: string[start:stop:step]

Basic Slicing

python

text = "Python Programming"

# Get characters from index 0 to 5 (not including 5)
print(text[0:5])   # 'Pytho'

# Get characters from index 7 to end
print(text[7:])     # 'Programming'

# Get characters from beginning to index 5
print(text[:5])     # 'Pytho'

# Get the entire string
print(text[:])      # 'Python Programming'

# Get every second character
print(text[::2])    # 'Pto rgamn'

Negative Slicing

python

# Get last 5 characters
print(text[-5:])    # 'mming'

# Get all characters except last 5
print(text[:-5])    # 'Python Progr'

# Get characters from -10 to -5
print(text[-10:-5]) # ' Progr'

Step Parameter

python

# Reverse the string
print(text[::-1])   # 'gnimmargorP nohtyP'

# Get every 3rd character
print(text[::3])    # 'Ph rn'

Practical Examples

  1. Extracting file extensions:

python

filename = "document.pdf"
extension = filename[-3:]
print(extension)  # 'pdf'
  1. Getting domain from email:

python

email = "user@example.com"
domain = email[email.index('@')+1:]
print(domain)  # 'example.com'
  1. Checking if a string is a palindrome:

python

word = "madam"
is_palindrome = word == word[::-1]
print(is_palindrome)  # True
  1. Extracting parts of a date:

python

date = "2023-04-15"
year = date[:4]
month = date[5:7]
day = date[8:]
print(year, month, day)  # '2023' '04' '15'

Remember that strings are immutable in Python, 

1. Basic String Operations

Concatenation (+)

python

str1 = "Hello"
str2 = "World"
result = str1 + " " + str2
print(result)  # "Hello World"

Repetition (*)

python

word = "Hi"
repeated = word * 3
print(repeated)  # "HiHiHi"

Length (len())

python

text = "Python"
print(len(text))  # 6

in and not in Operators in Python Strings

The in and not in operators are membership operators used to check if a substring exists within a string. They return boolean values (True or False).

in Operator

Checks if a substring exists in a string.

Syntax:

python

substring in string

Examples:

python

text = "Python programming is fun"

# Check for single character
print('P' in text)        # True
print('z' in text)        # False

# Check for multiple characters
print('pro' in text)      # True
print('gram' in text)     # True
print('java' in text)     # False

# Case-sensitive check
print('python' in text)   # False (because of case difference)

not in Operator

Checks if a substring does not exist in a string.

Syntax:

python

substring not in string

Examples:

python

text = "Python programming is fun"

print('java' not in text)     # True
print('fun' not in text)      # False
print('Fun' not in text)      # True (case-sensitive)

Practical Use Cases

  1. Input validation:

python

email = input("Enter your email: ")
if "@" not in email or "." not in email:
    print("Invalid email address")
  1. Search functionality:

python

products = ["Python book", "Java course", "JavaScript tutorial"]
search_term = "python"
results = [p for p in products if search_term.lower() in p.lower()]
print(results)  # ['Python book']
  1. Conditional execution:

python

filename = "report.pdf"
if ".pdf" in filename:
    print("This is a PDF file")
  1. Security check:

python

user_input = input("Enter comment: ")
if "script" not in user_input.lower():
    print("Comment accepted")
else:
    print("Potential XSS attack detected")

Important Notes

  1. These operations are case-sensitive:

python

print('python' in 'Python')  # False
  1. They work with empty strings:

python

print('' in 'Python')       # True (empty string is always considered present)
print('' not in 'Python')   # False
  1. Performance: These operations are highly optimized in Python and execute very quickly even for large strings.
  2. For exact matching rather than substring checking, use == instead:

python

print('python' == 'Python')  # False

Similar Posts

  • Date/Time Objects

    Creating and Manipulating Date/Time Objects in Python 1. Creating Date and Time Objects Creating Date Objects python from datetime import date, time, datetime # Create date objects date1 = date(2023, 12, 25) # Christmas 2023 date2 = date(2024, 1, 1) # New Year 2024 date3 = date(2023, 6, 15) # Random date print(“Date Objects:”) print(f”Christmas:…

  • Finally Block in Exception Handling in Python

    Finally Block in Exception Handling in Python The finally block in Python exception handling executes regardless of whether an exception occurred or not. It’s always executed, making it perfect for cleanup operations like closing files, database connections, or releasing resources. Basic Syntax: python try: # Code that might raise an exception except SomeException: # Handle the exception else:…

  • Classes and Objects in Python

    Classes and Objects in Python What are Classes and Objects? In Python, classes and objects are fundamental concepts of object-oriented programming (OOP). Real-world Analogy Think of a class as a “cookie cutter” and objects as the “cookies” made from it. The cookie cutter defines the shape, and each cookie is an instance of that shape. 1. Using type() function The type() function returns…

  • Formatted printing

    C-Style String Formatting in Python Python supports C-style string formatting using the % operator, which provides similar functionality to C’s printf() function. This method is sometimes called “old-style” string formatting but remains useful in many scenarios. Basic Syntax python “format string” % (values) Control Characters (Format Specifiers) Format Specifier Description Example Output %s String “%s” % “hello” hello %d…

Leave a Reply

Your email address will not be published. Required fields are marked *