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:…

  • Tuples

    In Python, a tuple is an ordered, immutable (unchangeable) collection of elements. Tuples are similar to lists, but unlike lists, they cannot be modified after creation (no adding, removing, or changing elements). Key Features of Tuples: Syntax: Tuples are defined using parentheses () (or without any brackets in some cases). python my_tuple = (1, 2, 3, “hello”) or (without…

  • List of machine learning libraries in python

    Foundational Libraries: General Machine Learning Libraries: Deep Learning Libraries: Other Important Libraries: This is not an exhaustive list, but it covers many of the most important and widely used machine learning libraries in Python. The choice of which library to use often depends on the specific task at hand, the size and type of data,…

  • Variable Length Keyword Arguments in Python

    Variable Length Keyword Arguments in Python Variable length keyword arguments allow a function to accept any number of keyword arguments. This is done using the **kwargs syntax. Syntax python def function_name(**kwargs): # function body # kwargs becomes a dictionary containing all keyword arguments Simple Examples Example 1: Basic **kwargs python def print_info(**kwargs): print(“Information received:”, kwargs) print(“Type of…

  • The print() Function in Python

    The print() Function in Python: Complete Guide The print() function is Python’s built-in function for outputting data to the standard output (usually the console). Let’s explore all its arguments and capabilities in detail. Basic Syntax python print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False) Arguments Explained 1. *objects (Positional Arguments) The values to print. You can pass multiple items separated by commas. Examples:…

Leave a Reply

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