f-строки доступны из Python 3.6 и очень полезны для форматирования строк:
>>> n='you'
>>> f'hello {n}, how are you?'
'hello you, how are you?'
Подробнее о них читайте в f-Strings в Python 3: улучшенный синтаксис форматирования строк (Руководство) . Я нашел интересную картину:
Обратите внимание, что использование тройных скобок приведет к тому, что в вашей строке будут только одиночные скобки:
>>> f"{{{74}}}" '{74}'
Тем не менее, вы можете получить больше скобок, чтобы показать, если вы используете больше, чем тройные скобки:
>>> f"{{{{74}}}}" '{{74}}'
И это именно так:
>>> f'{74}'
'74'
>>> f'{{74}}'
'{74}'
Теперь, если мы перейдем от двух {
к трем, результат будет таким же:
>>> f'{{{74}}}'
'{74}' # same as f'{{74}}' !
Так что нам нужно до 4! ( {{{{
) чтобы получить две скобки в качестве вывода:
>>> f'{{{{74}}}}'
'{{74}}'
Почему это? Что происходит с двумя фигурными скобками, чтобы Python требовал дополнительного с этого момента?
f'{2+2}'
возвращает 4, f'{{2+2}}'
возвращает 2 + 2, f'{{{2+2}}}'
➝ {4}, f'{{{{2+2}}}}'
➝ {{2 + 2}} и так далее. Это имеет смысл, но с первого взгляда немного озадачивает.
f'{74}'
, что так же, как f'74'
.
str.format
тоже делает это.
"{74}".format(...)
потребуется последовательность, по крайней мере, с 74 элементами.
f"{{2+2}}"
иf"{{{2+2}}}"
, которые есть'{2+2}'
и'{4}'
соответственно