Outils pour utilisateurs

Outils du site


issue78:tuto_python

Table des matières

1

Welcome back. It’s hard to imagine that it’s been 4 years since I began this series. I thought that I’d shelve the media manager project for a bit and return to some basics of Python programming. This month, I’ll revisit the print command. It’s one of the most used (at least in my programming) function that never seems to get the detail it deserves. There is a lot of things you can do with it outside of the standard ‘%s %d’. Since the print function syntax is different between Python 2.x and 3.x, we’ll look at them separately. Remember, however, you can use the 3.x syntax in Python 2.7. Most everything I present this month will be done from the interactive shell. You can follow along as we go. The code will look like this: »> a = “Hello Python” »> print(“String a is %s” % a) and the output will be in bold, like this: String a is Hello Python Python 2.x

Bienvenue à nouveau.

Il est difficile d'imaginer que ça fait 4 ans que j'ai commencé cette série. Je pensais laisser de côté le projet de gestionnaire de média un instant et revenir à certaines bases de la programmation Python.

Ce mois-ci, je vais revisiter la commande d'affichage (print). C'est l'une des fonctions les plus utilisées (au moins dans ma programmation) qui semble ne jamais obtenir le détail qu'elle mérite. Il y a beaucoup de choses que vous pouvez faire avec elle en dehors du basique '%s %d'.

Puisque la syntaxe de la fonction print est différente entre Python 2.x et 3.x, nous allons les examiner séparément. Rappelez-vous, cependant, que vous pouvez utiliser la syntaxe 3.x dans Python 2.7. La plus grande part de tout ce que je vous présente ce mois-ci se fera à partir de la ligne de commande interactive. Vous pouvez suivre au fur et à mesure. Le code ressemblera à ceci :

a = “Salut Python”
print(“La chaine a est %s” % a)

et la sortie sera en gras, comme ceci :

La chaine a est Salut Python

Python 2.x

Of course you remember the simple syntax for the print function in 2.x uses the variable substitution of %s or %d for simple strings or decimals. But many other formatting options are available. For example, if you need to format a number with leading zeros, you can do it this way: »> print(“Your value is %03d” % 4) Your value is 004 In this case, we use the ‘%03d’ formatting command to say, “Display the number to a width of 3 characters and if needed, left pad with zeros”. »> pi = 3.14159 »> print('PI = %5.3f.' % pi) PI = 3.142.

Bien sûr, vous vous souvenez que la syntaxe simple pour la fonction print en 2.x utilise la substitution de variable de %s ou %d pour les chaînes simples ou les nombres décimaux. Mais beaucoup d'autres options de mise en forme sont disponibles. Par exemple, si vous avez besoin de formater un nombre avec des zéros à gauche, vous pouvez le faire de cette façon :

print(“Votre valeur est %03d” % 4)

Votre valeur est 004

Dans ce cas, nous utilisons la commande de format '%03d' pour dire « Afficher le nombre sur une largeur de 3 caractères et, si nécessaire, complétée avec des zéros à gauche ».

pi = 3.14159
print('PI = %5.3f.' % pi)

PI = 3.142.

2

Here we use the float formatting option. The ‘%5.3f’ says to produce an output with a total width of five and three decimal places. Notice that the decimal point takes up one of the places of the total width. One other thing that you might not realize is that you can use the keys of a dictionary as part of the format command. »> info = {“FName”:“Fred”,“LName”:“Farkel”,“City”:“Denver”} »> print('Greetings %(FName)s %(LName)s of %(City)s!' % info) Greetings Fred Farkel of Denver! The following table shows the various possible substitution keys and their meanings.

Ici, nous utilisons l'option de format en virgule flottante. Le '%5.3f' dit de produire une sortie d'une largeur totale de cinq avec trois décimales. Notez que le point décimal occupe l'un des emplacements de la largeur totale.

Une autre chose que vous pourriez ne pas avoir réalisé est que vous pouvez utiliser les clés d'un dictionnaire dans le cadre de la commande format.

info = {“Prenom”:“Fred”,“Nom”:“Farkel”,“Ville”:“Denver”}
print('Bienvenue %(Prenom)s %(Nom)s de %(Ville)!' % info)

Bienvenue Fred Farkel de Denver!

Le tableau suivant présente les différentes clés de substitution possibles et leurs significations.

Python 3.x With Python 3.x, we have many more options (remember we can use these in Python 2.7) when it comes to the print function. To refresh your memory, here’s a simple example of the 3.x print function. »> print('{0} {1}'.format(“Hello”,“Python”)) Hello Python »> print(“Python is {0} cool!”.format(“WAY”)) Python is WAY cool! The replacement fields are enclosed within curly brackets “{“ “}”. Anything outside of these are considered a literal and will be printed as is. In the first example, we have numbered the replacement fields 0 and 1. That tells Python to take the first (0) value and put it into the field {0} and so on. However, you don’t have to use any numbers at all. Using this option causes the first value to be places in the first set of brackets and so on. »> print(“This version of {} is {}”.format(“Python”,“3.3.2”)) This version of Python is 3.3.2

Python 3.x

Avec Python 3.x, nous avons beaucoup plus d'options (souvenons-nous que nous pouvons les utiliser dans Python 2.7) quand il s'agit de la fonction print.

Pour vous rafraîchir la mémoire, voici un exemple simple de la fonction print en 3.x.

print('{0} {1}'.format(“Salut”,“Python”))

Salut Python

print(“Python est {0} sympa !”.format(“SUPER”))

Python est SUPER sympa !

Les champs de remplacement sont enfermés dans des accolades “{” “}”. Tout ce qui est en dehors de celles-ci est considéré comme littéral, et sera imprimé tel quel. Dans le premier exemple, on a numéroté les champs de remplacement 0 et 1. Cela indique à Python de prendre la première (0) valeur et la mettre dans le champ {0} et ainsi de suite. Cependant, vous n'avez pas à utiliser les numéros du tout. Utiliser cette option implique que la première valeur soit placée dans la première série de crochets et ainsi de suite.

print(“Cette version de {} est {}”.format(“Python”,“3.3.2”))

Cette version de Python est 3.3.2

3

As they say on the TV ads, “BUT WAIT… THERE’S MORE”. If we wanted to do some inline formatting, we have the following options. :<x Left align with a width of x :>x Right align with a width of x :^x Center align with a width of x Here is an example: »> print(“|{:<20}|”.format(“Left”)) |Left | »> print(“|{:>20}|”.format(“Right”)) | Right| »> print(“|{:^20}|”.format(“Center”)) | Center |

Comme ils le disent sur les publicités télévisées, « MAIS ATTENDEZ … IL Y A PLUS ». Si nous avions voulu faire une mise en forme en ligne, nous avons les options suivantes :

:<x alignement à gauche avec une largeur de x :>x alignement à droite avec une largeur de x :^x alignement centré avec une largeur de x

Voici un exemple :

print(“|{:<20}|”.format(“A gauche”))

|A gauche |

print(“|{:>20}|”.format(“A droite”))

| A droite|

print(“|{:^20}|”.format(“Centré”))

| Centré |

You can even specify a fill character along with the justification/width. »> print(“{:*>10}”.format(321.40)) *321.4 If you need to format a date/time output, you can do something like this: »> d = datetime.datetime(2013,10,9,10,45,1) »> print(“{:%m/%d/%y}”.format(d)) 10/09/13 »> print(“{:%H:%M:%S}”.format(d)) 10:45:01 Printing thousands separator using a comma (or any other character) is simple. »> print(“This is a big number {:,}”.format(7219219281)) This is a big number 7,219,219,281 Well, that should give you enough food for thought for this month. I’ll see you at the start of the 5th year.

Vous pouvez même spécifier un caractère de remplissage avec la justification ou la largeur :

print(“{:*>10}”.format(321.40))

*321.4

Si vous avez besoin de formater une sortie de date ou d'heure, vous pouvez faire quelque chose comme ceci :

d = datetime.datetime(2013,10,29,10,45,1)
print(“{:%d/%m/%y}”.format(d))

29/10/13

print(“{:%H:%M:%S}”.format(d))

10:45:01

Afficher le séparateur des milliers en utilisant une virgule (ou tout autre caractère) est simple.

print(“Voici un grand nombre {:.}”.format(7219219281))

Voici un grand nombre 7.219.219.281

Eh bien, cela devrait vous donner assez de nourriture pour la pensée pendant ce mois. Je vous revois au début de la 5e année.

issue78/tuto_python.txt · Dernière modification : 2014/03/22 20:14 de fredphil91