Comments on: % ou format() en Python ? http://sametmax.com/ou-format-en-python/ Du code, du cul Mon, 28 Oct 2019 11:54:55 +0000 hourly 1 https://wordpress.org/?v=4.9.7 By: Sam http://sametmax.com/ou-format-en-python/#comment-180059 Thu, 04 Aug 2016 18:22:54 +0000 http://sametmax.com/?p=6416#comment-180059 C’est tout le problème de l’innovation et la compatibilité. Si tu veux les deux, ce que Python arrive à faire assez brillament, tu vas forcément payer le prix d’un héritage en API.

]]>
By: louis http://sametmax.com/ou-format-en-python/#comment-180057 Thu, 04 Aug 2016 17:00:29 +0000 http://sametmax.com/?p=6416#comment-180057 Pour un langage qui proclamait : “There should be one– and preferably only one –obvious way to do it.”, c’est un peu dommage d’avoir maintenant 2 manières presque parfaitement équivalentes de faire la même chose, et qui ne se démarquent que par l’habitude d’utilisation, la place des touches sur le clavier ou la lisibilité dans de très rares cas.

]]>
By: Sam http://sametmax.com/ou-format-en-python/#comment-164345 Thu, 10 Sep 2015 19:39:36 +0000 http://sametmax.com/?p=6416#comment-164345 "3a={} 3b={}".format(*vars)

]]>
By: Larvis http://sametmax.com/ou-format-en-python/#comment-164343 Thu, 10 Sep 2015 15:54:42 +0000 http://sametmax.com/?p=6416#comment-164343 Oups l’équivalent avec format() ?

]]>
By: Sam http://sametmax.com/ou-format-en-python/#comment-164342 Thu, 10 Sep 2015 15:25:44 +0000 http://sametmax.com/?p=6416#comment-164342 Wut ?

]]>
By: Larvis http://sametmax.com/ou-format-en-python/#comment-164338 Thu, 10 Sep 2015 14:21:12 +0000 http://sametmax.com/?p=6416#comment-164338 Cela peut aussi servir :

>>> vars = ['aaa', 'bbb']
      >>>"3a=%s 3b=%s" % tuple(vars)
         '3a=aaa 3b=bbb'

Quel est l’équivalent avec % ?

]]>
By: Anne Onyme http://sametmax.com/ou-format-en-python/#comment-164336 Thu, 10 Sep 2015 13:33:40 +0000 http://sametmax.com/?p=6416#comment-164336 Et pour les maniaques du slip: https://pyformat.info/.

]]>
By: Sam http://sametmax.com/ou-format-en-python/#comment-164310 Tue, 08 Sep 2015 23:38:45 +0000 http://sametmax.com/?p=6416#comment-164310 Dans ton dernier exemple, la ligne est énorme et illisible, et viole tellement le PEP 8 que Guido hésite a porter plainte pour agression sexuelle. Une ligne comme ça, on la met forcément sur deux lignes.

]]>
By: Fred http://sametmax.com/ou-format-en-python/#comment-164307 Tue, 08 Sep 2015 17:16:41 +0000 http://sametmax.com/?p=6416#comment-164307 Je suis revenu sur cet article suite à la mise à jour annoncée par mail.

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 ;)

]]>
By: ice3 http://sametmax.com/ou-format-en-python/#comment-164299 Tue, 08 Sep 2015 10:20:44 +0000 http://sametmax.com/?p=6416#comment-164299 Pour les usages plus avancés, il y a même un DSL de formattage dans “format”

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

]]>