f-Strings доступні в 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}'
відповідно