Chapter 6

String Manipulation

Master the art of working with text - from basic operations to advanced formatting techniques!

📝 What are Strings?

A string is a sequence of characters - basically any text you want to work with. Think of it as a necklace made of letter beads, where each bead is a character!

You've already used strings in previous chapters, but now we'll dive deep into all the amazing things you can do with text!

Creating Strings - Different Ways

Output will appear here...

⚡ Quick Tip: When to Use Which Quotes?

# Single quotes when your string contains double quotes
sentence = 'She said, "Hello!"'

# Double quotes when your string contains single quotes
sentence = "It's a beautiful day!"

# Triple quotes for multiple lines or when you have both ' and "
paragraph = """He said, "It's wonderful!"
I agreed completely."""

# Generally: Pick one style and be consistent!

Escape Characters - Special Characters in Strings

Using Escape Sequences

Use backslash (\) to include special characters:

Output will appear here...

Common Escape Sequences

Escape Sequence Meaning Example
\n Newline "Line 1\nLine 2"
\t Tab "Name:\tJohn"
\' Single quote 'It\'s great'
\" Double quote "She said \"Hi\""
\\ Backslash "C:\\folder"

🔢 String Indexing & Slicing

Strings are sequences! Just like lists, each character has a position (index). You can access individual characters or extract portions of the string.

Accessing Individual Characters

Output will appear here...

String Slicing - Extracting Substrings

Slicing Syntax: string[start:stop:step]

Output will appear here...

🔍 Understanding String Slicing

For string: "PYTHON"
Indices:     0 1 2 3 4 5

text[1:4]   → "YTH"    (indices 1, 2, 3)
text[:3]    → "PYT"    (from start to 3)
text[3:]    → "HON"    (from 3 to end)
text[::2]   → "PTO"    (every 2nd char: 0, 2, 4)
text[::-1]  → "NOHTYP" (reversed!)

Remember:
- start is INCLUSIVE
- stop is EXCLUSIVE
- step is how many to skip

🛠️ Powerful String Methods

Python strings come with many built-in methods that make text manipulation easy!

Case Conversion Methods

Output will appear here...

Searching and Checking Methods

Output will appear here...

Trimming and Cleaning Strings

Output will appear here...

💡 Most Commonly Used String Methods

# Case conversion
.upper()      →  "hello" → "HELLO"
.lower()      →  "HELLO" → "hello"
.title()      →  "hello world" → "Hello World"
.capitalize() →  "hello" → "Hello"

# Searching
.find(sub)       →  Returns index or -1
.count(sub)      →  Count occurrences
.startswith(sub) →  True/False
.endswith(sub)   →  True/False

# Cleaning
.strip()    →  Remove whitespace from both ends
.replace()  →  Replace substring with another

# Splitting/Joining (covered next section!)
.split()    →  Split string into list
.join()     →  Join list into string

🎨 String Formatting - Building Strings

There are several ways to build strings with variables in Python. Let's learn them all!

Method 1: String Concatenation (The Old Way)

Output will appear here...

Method 2: % Formatting (Old Style)

Output will appear here...

Method 3: str.format() (Better Way)

Output will appear here...

🚀 F-Strings - The Modern Way!

F-strings (formatted string literals) are the newest and best way to format strings in Python! They're fast, readable, and powerful. Available in Python 3.6+.

Basic F-String Usage

Output will appear here...

Advanced F-String Formatting

Output will appear here...

🔍 F-String Format Specifiers

Syntax: f"{value:format_spec}"

Common format specifiers:
{value:.2f}    → Float with 2 decimal places
{value:10}     → Min width of 10 characters
{value:<10}    → Left aligned, width 10
{value:>10}    → Right aligned, width 10
{value:^10}    → Center aligned, width 10
{value:,}      → Add thousands separator
{value:.2%}    → Display as percentage

Examples:
f"{3.14159:.2f}"      → "3.14"
f"{42:05}"            → "00042"
f"{'hi':>5}"          → "   hi"
f"{1000000:,}"        → "1,000,000"
f"{0.85:.1%}"         → "85.0%"

💡 Why F-Strings are the Best!

  • Readable: Variables directly in string - clear and intuitive
  • Fast: Faster than other formatting methods
  • Powerful: Can include any Python expression
  • Concise: Less typing than concatenation or .format()
  • Modern: The recommended way to format strings in Python

Use f-strings whenever possible! They're the Pythonic way to format strings.

🔒 String Immutability - Strings Can't Change!

Strings are immutable - once created, they cannot be changed. Any operation that "modifies" a string actually creates a new string!

What Immutability Means

Output will appear here...

🔍 Why Are Strings Immutable?

Python makes strings immutable for several good reasons:

  • Safety: Can't accidentally modify strings - prevents bugs
  • Performance: Python can optimize memory for identical strings
  • Hashable: Immutable strings can be dictionary keys and set members
  • Thread-safe: Multiple parts of program can use same string safely
Example of string interning (optimization):
a = "hello"
b = "hello"
print(a is b)  # True! Same object in memory!

Python reuses the same "hello" object to save memory!

Working with "Changing" Strings

If you need to build or modify strings efficiently:

Output will appear here...

✂️ Splitting and Joining Strings

Two of the most useful string operations for working with text data!

split() - Breaking Strings Into Lists

Output will appear here...

join() - Combining Lists Into Strings

Output will appear here...

💡 split() and join() - Perfect Partners!

# They're opposites!
text = "apple,banana,cherry"

# Split: string → list
fruits = text.split(",")      # ["apple", "banana", "cherry"]

# Join: list → string
text_again = ",".join(fruits) # "apple,banana,cherry"

# Common pattern: modify words
sentence = "hello world python"
words = sentence.split()           # Split into words
words = [w.capitalize() for w in words]  # Capitalize each
result = " ".join(words)           # Join back
print(result)  # "Hello World Python"

Real-World Examples

Output will appear here...

📺 Video Resources

Watch these videos to reinforce your understanding of string manipulation:

Python String Methods

Corey Schafer

Comprehensive guide to all the important string methods and when to use them.

Watch Video

Python F-Strings Tutorial

Tech With Tim

Master modern string formatting with f-strings, including advanced formatting options.

Watch Video

String Manipulation in Python

Programming with Mosh

Clear explanation of string operations, slicing, and common string tasks.

Watch Video

🤖 AI Learning Prompts

Use these prompts with AI assistants to deepen your understanding:

Understanding String Basics

I'm learning about Python strings. Please help me understand:

1. What are strings and how are they stored in memory?
2. Explain string indexing and slicing with 10 different examples
3. Why are strings immutable and what does that mean in practice?
4. Show me the difference between single, double, and triple quotes
5. Give me 5 exercises to practice string indexing and slicing

Use simple language and include solutions!

Mastering String Methods

Help me become an expert with string methods:

1. List and explain the 15 most commonly used string methods
2. Give me real-world examples for each method
3. What's the difference between find() and index()?
4. Show me how to chain string methods together
5. Create 10 practice problems using different string methods
6. Explain string methods that check character types (isdigit, isalpha, etc.)

Include step-by-step examples!

String Formatting Mastery

I want to master all string formatting methods in Python:

1. Compare concatenation, %, .format(), and f-strings
2. Which method should I use and when?
3. Show me 20 examples of f-string formatting
4. How do I format numbers, dates, and align text?
5. Give me practice exercises for each formatting method
6. Show me how to build complex formatted output (like tables)

Make it beginner-friendly with plenty of examples!

Practical String Applications

Help me apply string knowledge to real problems:

1. How do I parse CSV data using string methods?
2. Show me how to clean and validate user input
3. How can I extract information from strings (emails, URLs, etc.)?
4. Give me 5 mini-projects that focus on string manipulation
5. How do I work with multi-line strings and text files?

Include complete working examples!

💡 Tips for Using These Prompts:

  • Practice regularly: Ask for new examples daily
  • Build projects: Request small programs that use multiple string concepts
  • Debug with AI: Share your string code and ask for improvements
  • Compare approaches: Ask "what's the best way to..." for different scenarios
  • Request challenges: Ask for progressively harder string problems

✏️ Practice Exercises

How to Approach These Exercises:

  • Read carefully: Make sure you understand the requirements
  • Plan first: Think about which string methods you'll need
  • Test thoroughly: Try different inputs
  • Experiment: Try multiple approaches to solve each problem

Part 1: Guided Exercises

Guided Exercise 1: Text Analyzer

What You'll Learn: How to analyze text using string methods.

Time: 15 minutes

Step 1: Create a Simple Text Analyzer

Output will appear here...

Guided Exercise 2: User Input Formatter

What You'll Learn: How to clean and format user input.

Time: 20 minutes

Clean and Format Various Types of Input

Output will appear here...

Part 2: Independent Practice

Challenge 1: Password Validator

Difficulty: Medium | Time: 20 minutes

Task: Create a password validator that checks:

  • At least 8 characters long
  • Contains at least one uppercase letter
  • Contains at least one lowercase letter
  • Contains at least one digit
  • Print whether password is valid
Output will appear here...

Challenge 2: Text Formatter

Difficulty: Medium | Time: 25 minutes

Task: Create a text formatter that:

  • Takes a multi-line paragraph
  • Removes extra whitespace
  • Capitalizes each sentence
  • Counts sentences
  • Displays formatted output
Output will appear here...

🎉 Congratulations!

You've completed Chapter 6! You now know:

  • How to create and manipulate strings
  • String indexing and slicing
  • Essential string methods
  • All string formatting methods (especially f-strings!)
  • String immutability and why it matters
  • How to split and join strings

Next Step: Move on to Chapter 7 to learn about file handling!

🎯 Knowledge Check

Test your understanding of string manipulation concepts!

Question 1: What will text = "Python"; print(text[1:4]) output?

Question 2: Which string method would you use to convert "hello world" to "HELLO WORLD"?

Question 3: What is the output of name = "Krishna"; age = 25; print(f"{name} is {age} years old")?

Question 4: Why does the following code produce an error?
text = "Python"; text[0] = "J"

Question 5: What will words = ["Python", "is", "fun"]; sentence = " ".join(words) produce?

🎓 Ready for More?

Great job completing Chapter 6! You've mastered string manipulation - one of the most important skills in Python programming. In the next chapter, we'll learn about file handling and how to read and write data to files!