The more common case for me is to name the parameters. Especially with longer variable names, this gets tedious fast. Given
>>> very_long_var_name_1 = 'spam'
>>> very_long_var_name_2 = 'ham'
compare >>> # Explicit but tedious and doesn't help readability:
>>> print('{very_long_var_name_1}: {very_long_var_name_2}'.format(
... very_long_var_name_1=very_long_var_name_1,
... very_long_var_name_2=very_long_var_name_2))
spam: ham
with >>> # Explicit but somehow feels dirty:
>>> print('{very_long_var_name_1}: {very_long_var_name_2}'.format(
... **locals()))
spam: ham
and >>> # Still fits on one line. I think f prefix makes intent clear.
>>> print(f'{very_long_var_name_1}: {very_long_var_name_2}')
spam: ham