I've written `"text {foo}".format(foo=foo)` so many times I've almost convinced myself that it's not that verbose. Then i discovered fstrings introduced ins 3.6:
```
>>> f"text {fpp}"
'text foo'
```
>>> mind == blown
True
it is very very true. F-strings are awesome.
But there is one use case that I prefer .format(), and is when formatting a string using a dictionary. Being able to <i></i> is awesome:<p><pre><code> some_long_string_template.format(**some_dictionary_with_many_keys)
</code></pre>
For me that is such a nice and practical use case. But yes for not many local variables, f-string is the way to go.
Templated strings are great for when, as the name suggests, you want to create a string with some placeholders to be expanded at a later time.<p>When you just want to interpolate a string on the fly, Fstrings are absolutely the right thing to do most of the time.