Python – Format Strings

Welcome to The Coding College, your go-to resource for mastering Python! In this tutorial, we’ll delve into format strings in Python, an essential feature for creating clean, dynamic, and user-friendly outputs.

Whether you’re formatting numbers, inserting variables, or aligning text, Python’s string formatting tools provide a simple and efficient way to create professional results.

What Are Format Strings?

Format strings allow you to embed variables and expressions within strings, making it easy to create dynamic outputs. Python provides several ways to format strings:

  1. format() method
  2. f-strings (formatted string literals)
  3. % operator

We’ll explore each method with practical examples.

1. Using the format() Method

The format() method replaces placeholders in a string with specified values.

Syntax

"template string with placeholders {}".format(value)  

Example 1: Basic Usage

name = "Alice"  
age = 25  
print("My name is {} and I am {} years old.".format(name, age))  
# Output: My name is Alice and I am 25 years old.  

Example 2: Positional Arguments

You can reorder values by specifying their positions.

print("{1} is learning {0}".format("Python", "Alice"))  
# Output: Alice is learning Python  

Example 3: Named Placeholders

Named placeholders improve readability.

print("Name: {name}, Age: {age}".format(name="Bob", age=30))  
# Output: Name: Bob, Age: 30  

2. Using f-Strings (Formatted String Literals)

Introduced in Python 3.6, f-strings provide a concise way to format strings by embedding expressions directly within the string.

Syntax

f"string with {expression}"  

Example 1: Simple f-String

name = "Charlie"  
age = 35  
print(f"My name is {name} and I am {age} years old.")  
# Output: My name is Charlie and I am 35 years old.  

Example 2: Expressions in f-Strings

You can perform calculations or call functions within f-strings.

price = 49.99  
quantity = 3  
print(f"Total cost: ${price * quantity:.2f}")  
# Output: Total cost: $149.97  

3. Using the % Operator

The % operator is an older way to format strings, often used in legacy code.

Syntax

"template % values"  

Example 1: Simple Usage

name = "Dana"  
age = 40  
print("My name is %s and I am %d years old." % (name, age))  
# Output: My name is Dana and I am 40 years old.  

Example 2: Formatting Floats

price = 99.95  
print("The price is %.2f" % price)  
# Output: The price is 99.95  

Formatting Options

Python formatting methods provide tools to customize string outputs.

1. Aligning Text

Use alignment flags to structure your output.

Example: Align Left, Center, and Right

text = "Python"  
print("{:<10}".format(text))  # Left-aligned  
print("{:^10}".format(text))  # Center-aligned  
print("{:>10}".format(text))  # Right-aligned  

2. Formatting Numbers

Control decimal places and scientific notation.

Example: Decimal Precision

pi = 3.14159  
print("Pi is approximately {:.2f}".format(pi))  
# Output: Pi is approximately 3.14  

Example: Scientific Notation

number = 12345678  
print("Scientific notation: {:.2e}".format(number))  
# Output: Scientific notation: 1.23e+07  

3. Formatting with f-Strings

f-strings also support formatting syntax.

Example: Padding and Precision

value = 42.678  
print(f"{value:.1f}")  # 1 decimal place  
print(f"{value:>10.2f}")  # Right-aligned with 2 decimals  

Practical Applications of Format Strings

Example 1: Dynamic User Messages

username = "coder123"  
login_time = "10:45 AM"  
print(f"Welcome {username}, you logged in at {login_time}.")  

Example 2: Create a Report

items = ["Apples", "Bananas", "Cherries"]  
prices = [1.20, 0.50, 3.00]  

for item, price in zip(items, prices):  
    print(f"{item:<10} ${price:.2f}")  

Output:

Apples     $1.20  
Bananas    $0.50  
Cherries   $3.00  

Example 3: Logging Messages

level = "INFO"  
message = "Application started."  
print(f"[{level:^5}] {message}")  
# Output: [INFO ] Application started.  

Best Practices for String Formatting

  1. Use f-Strings for Simplicity
    f-strings are concise and highly readable. Prefer them over older methods for new projects.
  2. Use format() for Compatibility
    If your code needs to run on older versions of Python, format() is a great choice.
  3. Avoid % Operator for New Code
    While still functional, the % operator is outdated and less flexible.

Learn Python at The Coding College

At The Coding College, we offer tutorials that make learning Python simple and effective. Whether you’re just starting out or polishing your skills, our resources cover everything from string basics to advanced formatting techniques.

Conclusion

String formatting is an essential skill for creating clean, dynamic outputs in Python. Whether you’re using format(), f-strings, or even the % operator, Python offers the flexibility you need to produce professional results.

Leave a Comment