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

  • Top Programming Languages and Tools Developed Using Python

    Python itself is not typically used to develop other programming languages, as it is a high-level language designed for general-purpose programming. However, Python has been used to create domain-specific languages (DSLs), tools for language development, and educational languages. Here are some examples: 1. Hy 2. Coconut Description: A functional programming language that compiles to Python. It adds…

  • Programs

    Weekly Wages Removing Duplicates even ,odd Palindrome  Rotate list Shuffle a List Python random Module Explained with Examples The random module in Python provides functions for generating pseudo-random numbers and performing random operations. Here’s a detailed explanation with three examples for each important method: Basic Random Number Generation 1. random.random() Returns a random float between 0.0 and 1.0 python import…

  • sqlite3 create table

    The sqlite3 module is the standard library for working with the SQLite database in Python. It provides an interface compliant with the DB-API 2.0 specification, allowing you to easily connect to, create, and interact with SQLite databases using SQL commands directly from your Python code. It is particularly popular because SQLite is a serverless database…

  • file properties and methods

    1. file.closed – Is the file door shut? Think of a file like a door. file.closed tells you if the door is open or closed. python # Open the file (open the door) f = open(“test.txt”, “w”) f.write(“Hello!”) print(f.closed) # Output: False (door is open) # Close the file (close the door) f.close() print(f.closed) # Output: True (door is…

  • Escape Sequences in Python

    Escape Sequences in Python Regular Expressions – Detailed Explanation Escape sequences are used to match literal characters that would otherwise be interpreted as special regex metacharacters. 1. \\ – Backslash Description: Matches a literal backslash character Example 1: Matching file paths with backslashes python import re text = “C:\\Windows\\System32 D:\\Program Files\\” result = re.findall(r'[A-Z]:\\\w+’, text) print(result) #…

Leave a Reply

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