# Python String Formatting

Python provides multiple ways to format strings. The most common methods are F-Strings, the `format()` method, and the `%` operator.

## F-Strings (Formatted String Literals)

Introduced in Python 3.6, F-Strings are the recommended way to format strings because they are readable, concise, and faster.

```python
name = "John"
age = 36
txt = f"My name is {name}, I am {age}"
print(txt)
```

You can also evaluate expressions inside the curly braces:

```python
price = 59
txt = f"The price is {price * 1.20:.2f} dollars"
print(txt)
```

## The `format()` Method

The `format()` method was introduced in Python 3.0. It allows you to format selected parts of a string.

```python
age = 36
txt = "My name is John, and I am {}"
print(txt.format(age))
```

You can use index numbers to ensure the arguments are placed in the correct placeholders:

```python
quantity = 3
itemno = 567
price = 49.95
myorder = "I want to pay {2} dollars for {0} pieces of item {1}."
print(myorder.format(quantity, itemno, price))
```

## The `%` Operator (Old Style)

This is the old style of formatting, similar to `printf` in C. It is still supported but generally less preferred than F-Strings or `format()`.

```python
name = "John"
txt = "Hello, %s" % name
print(txt)
```

[[programming/python/python]]