Mastering Strings in Python: Slicing, Formatting, and More


Strings are one of the most fundamental data types in Python. Whether you're printing a message, processing user input, or working with file paths — you're dealing with strings.
In this blog, we’ll explore everything from string slicing and built-in methods to formatting and escape sequences — along with why we use them.
Let’s Start With Basics
Open your Python shell and follow along:
lang = "Python Programming"
first_char = lang[0]
print(first_char) # Output: P
Strings in Python are treated like lists — they are indexable. You can access individual characters or create slices.
sliced_str = lang[0:6]
print(sliced_str) # Output: Python
Slicing Strings
Let’s try different slice combinations:
num_list = "0123456789"
print(num_list[:]) # Output: 0123456789
print(num_list[3:]) # Output: 3456789
print(num_list[:7]) # Output: 0123456
You can also include a step/hop value:
print(num_list[0:7:2]) # Output: 0246
print(num_list[0:7:3]) # Output: 036
Here, the third argument defines the step size — how many characters to skip while slicing.
String Methods in Action
Python provides many built-in methods to manipulate strings:
lang = "Python Programming"
print(lang.lower()) # Output: python programming
print(lang.upper()) # Output: PYTHON PROGRAMMING
Trimming Whitespaces
framework = " Django "
print(framework.strip()) # Output: Django
Replacing Content
lang = "Pyhton Programming"
print(lang.replace("Python", "C++")) # Output: C++ Programming
print(lang) # Original string remains unchanged (immutability)
Strings to Lists and Vice Versa
Let’s say we have a CSV-style string:
programming = "javascript, c++, golang, python, java"
print(programming.split(", "))
# Output: ['javascript', 'c++', 'golang', 'python', 'java']
And to convert back:
lang_list = ["c++", "python", "java", "rust"]
print(" ".join(lang_list)) # Output: c++ python java rust
Finding and Counting:
language = "Python Programming"
print(language.find("Programming")) # Output: 7
print(language.find("programming")) # Output: -1 (case-sensitive)
#also we can count a particular word in a string
sentence = "hello python python python"
print(sentence.count("python")) # Output: 3
String Formatting with format()
topic = "DSA"
hours = "2"
order = "I will study {} {} hours a day"
print(order.format(topic, hours))
# Output: I will study DSA 2 hours a day
{}
are placeholders used in strings to dynamically insert values.
String Length and Looping
lang = "javascript programming"
print(len(lang)) # Output: 22
for letter in "rust":
print(letter)
#Outputs: r
# u
# s
# t
Escape Characters and Raw Strings
Sometimes you run into issues when using quotes:
# This might throw an error
# str = "he said, "python is easy language" "
Use escape characters:
str = "he said, \"python is easy language\""
print(str)
#Outputs: he said, "python is easy language"
Or, use raw strings to avoid escape sequence processing:
str = r"Web\nDevelopment"
print(str) # Output: Web\nDevelopment
This is especially useful in file paths (e.g., r"C:\newfolder\test"
).
Membership Check
You can check if a string exists inside another:
str = "javascript programming"
print("javascript" in str) # Output: True
Conclusion
Strings are everywhere in Python — and knowing how to manipulate them efficiently is key to writing readable and powerful code. From slicing and formatting to raw strings and membership checks, you've now got a solid understanding of Python's string capabilities.
Subscribe to my newsletter
Read articles from Harsh Gupta directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Harsh Gupta
Harsh Gupta
I am a CSE undergrad learning DevOps and sharing what I learn.