String formatting inserts values into a template. F-strings (Python 3.6+) are the preferred way—they're readable and support expressions. Use format specifiers like :.2f for decimals or :x for hex. Older options are str.format() and %; you may see them in legacy code.
What you'll learn:
- F-strings:
f"{var}" - Format specifiers:
:.2f,:x - Alternative methods:
format()and%
name = "Alice"
age = 30
# f-strings (preferred)
print(f"{name} is {age} years old")
print(f"Next year: {age + 1}")
# Format specifiers
pi = 3.14159
print(f"Pi: {pi:.2f}")
print(f"Hex: {42:x}")
# str.format()
print("{} is {}".format(name, age))
# % (legacy)
print("%s is %d" % (name, age))Anything inside {} in an f-string is evaluated: {age + 1} computes the value. :.2f means 2 decimal places; :x means hexadecimal.
To run this program:
$ python source/string-formatting.py
Alice is 30 years old
Next year: 31
Pi: 3.14
Hex: 2a
Alice is 30
Alice is 30Tip: Prefer f-strings for new code. They're faster and clearer than format() or %.
Try it: Format a float with 3 decimal places and a percentage (e.g., 0.75 as "75%").
Source: string-formatting.py
Next: Regular Expressions