String Formatting
In Python, string formatting can be done in several ways. Here's an overview of different methods, along
with examples of each:
1. Using % operator (Old style)
python
Copy code
name = "John"
age = 25
print("Hello, %s. You are %d years old." % (name, age))
2. Using .format() method (Preferred before Python 3.6)
python
Copy code
name = "John"
age = 25
print("Hello, {}. You are {} years old.".format(name, age))
You can also use positional arguments:
python
Copy code
print("Hello, {0}. You are {1} years old.".format(name, age))
Or named arguments:
python
Copy code
print("Hello, {name}. You are {age} years old.".format(name="John", age=25))
3. Using f-strings (Introduced in Python 3.6, concise and efficient)
python
Copy code
name = "John"
age = 25
print(f"Hello, {name}. You are {age} years old.")
4. Using str.format() with number formatting
You can also format numbers, for example, rounding floats or adding leading zeros:
python
Copy code
price = 49.99
print("The price is {:.2f} dollars.".format(price)) # Prints price with 2 decimal places
number = 7
print("The number is {:03}".format(number)) # Prints the number with leading zeros (e.g., 007)
Or using f-strings:
python
Copy code
price = 49.99
print(f"The price is {price:.2f} dollars.")
number = 7
print(f"The number is {number:03}")
5. Aligning Text with .format() and f-strings
You can also specify alignment within a string:
python
Copy code
print("{:<10} | {:^10} | {:>10}".format("Left", "Center", "Right"))
# Same using f-string
print(f"{'Left':<10} | {'Center':^10} | {'Right':>10}")
Example of all formats combined:
python
Copy code
name = "Alice"
age = 30
balance = 1023.456
# Using % operator
print("Name: %s, Age: %d, Balance: %.2f" % (name, age, balance))
# Using .format() method
print("Name: {}, Age: {}, Balance: {:.2f}".format(name, age, balance))
# Using f-strings
print(f"Name: {name}, Age: {age}, Balance: {balance:.2f}")
Each method has its use cases, but f-strings are currently the most concise and recommended for
modern Python.