The answer is there are 3 ways to format a string: %, .format, and f-strings.
You could sort of pull a retcon and say that .format() is the dynamic form of f'' literals.
Having used the equivalent feature in JavaScript, this stuff is super handy. It also makes "printf" a lot nicer:
print('I have {count} {color} {object}'.format(count=count, color=color, object=object)) print('I have {} {} {}'.format(count, color, object)) print(f'I have {count} {color} {object}')