str.format() Format string
Last updated: 2026-09-22
str.format() Format string
str.format(*args, **kwargs) substitutes {} placeholders with args or kwargs.
| Category | String Methods |
|---|---|
| Kind | Built-in Type Method |
| Python Version | all |
📝 Syntax
str.format(...)
⚙️ Parameters
| args Optional | Variable positional args mapped to {} or {0} placeholders. |
|---|---|
| kwargs Optional | Variable keyword args mapped to {name} placeholders. |
Returns:str. A new string with placeholders replaced by args/kwargs.
Mutates the original:No (returns a new object)
💥 Raises
IndexError— Raised when a positional placeholder index is out of range.KeyError— Raised when a placeholder field name is missing from kwargs.ValueError— Raised for an invalid format specifier or field reference syntax.
▶ Example
Edit the code, press Run, and see the result in the output panel:
Output:
Hello, World!
Alice is 30
💡 Related Cases
More case studies coming soon — check back later.
❓ FAQ
QWhat are the different ways to write the {} placeholders?
AThree ways: {} matches automatically by position, {0}/{1} by index, and {name} by keyword. For example, '{0}-{name}'.format(1, name='x') gives '1-x'.
QWhat errors are raised when placeholders and arguments do not match?
AAn index exceeding the argument count in a positional placeholder raises IndexError; a missing keyword for {name} raises KeyError; a malformed format specifier raises ValueError.
QHow do I output a literal {}?
AEscape it with doubled curly braces: '{{}}'.format() gives '{}'.
QShould I use this or f-strings?
AFavor f-strings (Python 3.6+) in most cases because they are more readable. format() is suited to templates stored in variables where the format string must be built dynamically.