Что такое форматированные строковые литералы в Python 3.6?

Одной из особенностей Python 3.6 являются форматированные строки.

Этот вопрос SO (String с префиксом 'f' в python-3.6) спрашивает о внутренностях форматированных строковых литералов, но я не понимаю точное использовать случай форматированных строковых литералов. В каких ситуациях следует использовать эту функцию? Является не явным лучше, чем неявным?

Ответ 1

Простой лучше, чем сложный.

Итак, у нас есть форматированная строка. Это дает простоту форматированию строки, сохраняя явный код (скомпонованный на другие механизмы форматирования строк).

title = 'Mr.'
name = 'Tom'
msg_count = 3

# This is explicit but complex
print('Hello {title} {name}! You have {count} messages.'.format(title=title, name=name, count=count))

# This is simple but implicit
print('Hello %s %s! You have %d messages.'%(title, name, count))

# This is both explicit and simple. PERFECT!
print(f'Hello {title} {name}! You have {msg_count} messages.')

Он предназначен для замены str.format для простого форматирования строк.