Afficher en Python

Eric Obermeyer – Actualisation: septembre 2014

 

I) Affichage basique. 1

II) Les options de print. 1

1) Entre deux affichages. 1

2) Entre deux éléments d'un même affichage. 2

II) Afficher du texte et des variables “mélangés” en Python: les bases. 2

1) Première méthode: affichage direct. 2

2) Seconde méthode: construction de la chaîne par concaténation. 2

3) Troisième méthode (recommandée): construction de la chaîne avec la méthode format() 2

III) Formater l'affichage d'un nombre ou d'une chaîne de caractères. 2

IV) Formater l’affichage d’un nombre flottant (un nombre réel) 3

 

I) Affichage basique

print("texte")

print(valeur)

print(variable)

# On peut afficher plusieurs choses sur une ligne

print("texte1", valeur1, variable1,…)

Par exemple

print("Salut !")

print(4)

print(1/4)

a = 5

print(a)

print("a=", a, "et 1/4 =",1/4 )

# renvoie:

Salut !

4

0.25

5

a = 5 et 1/4 = 0.25

Dès que l'on veut afficher du texte et des valeurs ou des variables mélangés ensemble, il faut prendre l'habitude d'utiliser la méthode format(), car sinon on se perd dans les guillemets.

II) Les options de print

1) Entre deux affichages

Entre deux affichages, il y a par défaut un saut de ligne, que l'on peut remplacer par n'importe quelle chaîne de caractères, avec l'option end = "…"

print("bonjour ", "au revoir", end = "*****")

print("Salut !")

# renvoie

bonjour  au revoir*****Salut !

Pour coller les affichages successifs, il suffit de mettre end="".

2) Entre deux éléments d'un même affichage

L'option sep = "…" (par défaut sep ="") permet de séparer deux éléments affichés par une chaîne de caractères quelconque.

print("Bonjour", "Au revoir", "Salut", sep = "***")

# renvoie

Bonjour***Au revoir***Salut

II) Afficher du texte et des variables “mélangés” en Python: les bases

Imaginons que dans un programme il y a trois variables nom, prenom, age qui contiennent le nom, le prénom et l’âge d’une personne. On souhaite afficher:

La personne s’appelle nom prénom . Elle a age ans .

On peut le faire de trois manières.

1) Première méthode: affichage direct

La première façon de faire est d'utiliser directement print() avec des virgules et des guillemets:

print(“La personne s’appelle”, nom, prenom, “. Elle a”, age, “ans.”)

2) Seconde méthode: construction de la chaîne par concaténation

La  seconde façon de faire est de construire au préalable la chaîne de caractères à afficher en mettant bout à bout (en concaténant) les divers morceaux de la chaîne, et en convertissant les nombres (comme age) en chaîne de caractères avec str():

rep = “La personne s’appelle” + nom + prenom + “. Elle a” + str(age) + “ans.”

print(rep)

3) Troisième méthode (recommandée): construction de la chaîne avec la méthode format()

 La troisième façon de faire est de construire au préalable la chaîne de caractères à afficher avec la méthode format(): on insère dans les positions {0},{1},…. Le contenu des variables indiquées dans cet ordre dans format().

rep = “La personne s’appelle {0} {1}. Elle a {2} ans.”.format(nom, prenom, age)

print(rep)

La troisième méthode est la meilleure. Elle est plus claire. De plus, les options de la méthode  format() permettront d’être bien plus exigeant encore pour le formatage des affichages.

III) Formater l'affichage d'un nombre ou d'une chaîne de caractères

Pour afficher (par défaut à droite) dans un champ d'au moins n caractères un nombre ou une chaîne x:

print("{0:n}".format(x))

Pour afficher centré ou aligné à gauche dans un champ d'au moins n caractères un nombre ou une chaîne x:

print("{0:^n}".format(x)) ou print("{0:<n}".format(x))

Pour remplir les éventuels espaces avec un caractère quelconque, par exemple *

print("{0:*^n}".format(x))

Par exemple:

def formatage_pour_tous():

    x, mot = 11.25756, "Bonjour"

 

    rep = "x = {0:.4} et mot = {1:.4} arrondi à 4 chiffres ou tronqué à \

4 caractères".format(x,mot)

    print(rep)

 

    rep = "x = {0:15} et mot = {1:15} sur au moins 15 caractères".format(x,mot)

    print(rep)

 

    rep = "x = {0:15.4} et mot = {1:15.4} tronqués à 4 caractères sur au moins\ 15 caractères".format(x,mot)

    print(rep)

 

   rep = "x = {0:^15} et mot = {1:<15} centré et aligné à gauche sur au moins\ 15 caractères".format(x,mot)

    print(rep)

 

    rep = "x = {0:*^15} centré sur au moins 15 caractères avec remplissage \

des blancs par des *".format(x,mot)

    print(rep)

 

    rep = "x = {0:-<15} aligné à gauche sur au moins 15 caractères avec \

remplissage des blancs par des -".format(mot)

    print(rep)

Renvoie :

x = 11.26 et mot = Bonj arrondi à 4 chiffres ou tronqué à 4 caractères

 

x =        11.25756 et mot = Bonjour         sur au moins 15 caractères

 

x =           11.26 et mot = Bonj            tronqués à 4 caractères sur au moins 15 caractères

 

x =    11.25756     et mot = Bonjour         centré et aligné à gauche sur au moins 15 caractères

 

x = ***11.25756**** centré sur au moins 15 caractères avec remplissage des blancs par des *

 

x = Bonjour-------- aligné à gauche sur au moins 15 caractères avec remplissage des blancs par des -

IV) Formater l’affichage d’un nombre flottant (un nombre réel)

On peut exploiter tout ce qui est décrit dans le paragraphe précédente, mais en plus:

Pour afficher un nombre réel x avec p chiffres significatifs:

print(“{0:.p}”.format(x))

Pour afficher un nombre réel x avec p décimales:

print(“{0:.pf}”.format(x))

Pour afficher un nombre réel x en notation scientifique avec p décimales:

print(“{0:.pe}”.format(x))

Pour afficher un nombre réel x en pourcentage avec p décimales:

print(“{0:.p%}”.format(x))

 

Par exemple:

def formatage_reels():

    x = 123.5554

 

    rep = "x = {0:.4} avec 4 chiffres".format(x)

    print(rep)

 

    rep = "x = {0:.2f} avec 2 décimales".format(x)

    print(rep)

 

    rep = "x = {0:.3e} en notation scientifique avec 3 décimales".format(x)

    print(rep)

    rep = "x = {0:.3%} en notation pour cent avec 3 décimales".format(x)

    print(rep)

Renvoie:

x = 123.6 avec 4 chiffres

 

x = 123.56 avec 2 décimales

 

x = 1.236e+02 en notation scientifique avec 3 décimales

 

x = 12355.540% en notation pour cent avec 3 décimales