Cette entrée :
'%s %(?)s' % {'?': 'a'}
donne lieu à cette sortie :
"{'?': 'a'} a"
qui remplace les caractères de remplacement à base de tuple et de dict dans la chaîne source par la valeur à laquelle vous vous attendriez si vous utilisiez l'un ou l'autre séparément.
Toutefois, si vous inversez le placement des caractères de remplacement dans la chaîne, vous obtenez une erreur de type (TypeError) :
In [2]: '%(?)s %s' % {'?': 'a'}
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-2-7989b5f88c97> in <module>()
----> 1 '%(?)s %s' % {'?': 'a'}
TypeError: not enough arguments for format