"3a={} 3b={}".format(*vars)
]]>>>> vars = ['aaa', 'bbb']
>>>"3a=%s 3b=%s" % tuple(vars)
'3a=aaa 3b=bbb'
Quel est l’équivalent avec % ?
]]>Juste pour rajouter 2 remarques
1) concernant la remarque de Romain sur le fait d’utiliser plusieurs fois le même terme, on peut faire aussi la même chose avec %
=> print “%(x)s %(x)s %(x)s” % {“x” : “bon”}
2) l’équivalent qui affiche la date possède une variable inutile
=> “%(value)s%(unit)s (%(time)s)” % {“value”: 3, “unit”: “ppm”, “time”: datetime.now().strftime(“%H:%M:%S”)}
Ben oui, quand on veut être honnête on essaye d’écrire un code similaire au-moins dans ses variables ;)
]]>Du coup, on peut séparer la représentation des données, pour les nombres :
Pour faire du padding
a = "{:02}.png"
a.format(1) # 01.png
a.format(30) # 30.png
Ca évite d’utiliser les “zfills” et companie
On peut même faire des conversions de base pour les nombres (ici du décimal au binaire) :
a = "{:b}"
a.format(50) # '110010'
Plus d’infos : https://docs.python.org/2/library/string.html#format-specification-mini-language
]]>