We usually use the backslash to escape illegal characters.
For example, escaping the double quotes.
>>> "\"" == '"'
True
In f-strings, curly braces are used for placeholding. To represent a curly brace, the braces are doubled.
For example,
>>> f"{{}}" == "{}"
True
Why was this intuitive approach not favored when developing f-strings? Is there some technical or design reason?
>>> f'\{\}'
File "<stdin>", line 1
SyntaxError: f-string expression part cannot include a backslash
I believe that PEP 536 (Final Grammar for Literal String Interpolation) speaks to this point: https://www.python.org/dev/peps/pep-0536/
A short snippet from the Motivation section of the PEP is "The current implementation of f-strings in CPython relies on the existing string parsing machinery and a post processing of its tokens. This results in several restrictions to the possible expressions usable within f-strings: "
For additional information refer to this linked email.