Cet article fournit un aperçu de la fonction 𝐩𝐫𝐢𝐧𝐭() en Python, qui est utilisée pour afficher des chaînes, des nombres et des valeurs de variables sur la sortie standard ( 𝐬𝐲𝐬.𝐬𝐭𝐝𝐨𝐮𝐭 ).
- Différences entre l’impression dans Python 2 et Python 3
- Imprimez des chaînes, des nombres, des listes, des dictionnaires et plus encore
- Imprimer les valeurs stockées dans les variables
- Imprimer sans nouvelle ligne de fin : fin
- Imprimer plusieurs variables/littéraux : sep
- Imprimer les éléments de la liste séparés par n’importe quel caractère
- Imprimer des chaînes avec des variables intégrées
- Imprimer des valeurs numériques avec le format spécifié
Si vous souhaitez effectuer une sortie vers un fichier, reportez-vous à l’article suivant :
Différences entre 𝐩𝐫𝐢𝐧𝐭 dans Python 2 et Python 3
𝐩𝐫𝐢𝐧𝐭 est une fonction en Python 3, mais une instruction en Python 2.
- Fonctions intégrées – print() — Documentation Python 3.11.3
- 6. Instructions simples – L’instruction print — Documentation Python 2.7.18
print xxx # Python 2 print(xxx) # Python 3
L’exécution de code Python 2 contenant l’instruction 𝐩𝐫𝐢𝐧𝐭 dans Python 3 entraînera une erreur SyntaxError. Les parenthèses () sont obligatoires.
# print 'this is a pen' # SyntaxError: Missing parentheses in call to 'print'. Did you mean print('this is a pen')? print('this is a pen') # this is a pen
Faites attention à ne pas exécuter par inadvertance Python 2 au lieu de Python 3. Pour confirmer la version de Python que vous utilisez, consultez cet article :
Cet article se concentre sur la fonction Python 3 𝐩𝐫𝐢𝐧𝐭() .
Imprimez des chaînes, des nombres, des listes, des dictionnaires et plus encore
Vous pouvez afficher des chaînes ou des nombres en les passant comme arguments à la fonction 𝐩𝐫𝐢𝐧𝐭() .
print('this is a pen') # this is a pen print(100) # 100
Pour les listes ou les dictionnaires, le contenu entier est affiché. Un exemple d’affichage d’éléments de liste séparés par des caractères spécifiques sera expliqué plus loin.
print([0, 1, 2]) # [0, 1, 2] print({'a': 0, 'b': 1, 'c': 2}) # {'a': 0, 'b': 1, 'c': 2}
Les chaînes sont imprimées directement, tandis que les autres types sont imprimés à l’aide de leurs méthodes __𝐬𝐭𝐫__() . Par exemple, lorsque vous transmettez 1.00000 comme chaîne ‘1.00000’ , elle s’imprime telle quelle. Cependant, lorsque vous la transmettez comme nombre à virgule flottante 1.00000 , elle s’imprime comme 1.0 .
print('1.00000') # 1.00000 print(1.00000) # 1.0
Pour afficher les types 𝐟𝐥𝐨𝐚𝐭 avec un certain nombre de décimales ou appliquer d’autres formats, utilisez la méthode 𝐟𝐨𝐫𝐦𝐚𝐭() ou les f-strings. Plus d’informations à ce sujet plus tard.
Enveloppement et troncation de la sortie
Utilisez les modules textwrap et pprint pour afficher les chaînes longues, des listes, des dictionnaires et bien plus encore avec l’habillage et la troncature.
Imprimer les valeurs stockées dans les variables
Dans les exemples précédents, les valeurs de chaîne ou de nombre sont transmises directement à la fonction 𝐩𝐫𝐢𝐧𝐭() . Vous pouvez obtenir le même résultat en utilisant des variables contenant ces valeurs.
Pour afficher des éléments de listes ou de dictionnaires, spécifiquesz des index ou des clés.
s = 'this is a pen' print(s) # this is a pen l = [0, 1, 2] print(l) # [0, 1, 2] print(l[0]) # 0 d = {'a': 0, 'b': 1, 'c': 2} print(d) # {'a': 0, 'b': 1, 'c': 2} print(d['b']) # 1 f = 1.00000 print(f) # 1.0
Imprimer sans nouvelle ligne de fin : 𝐞𝐧𝐝
Par défaut, 𝐩𝐫𝐢𝐧𝐭() ajoute une nouvelle ligne après la sortie.
print('abc') print('xyz') # abc # xyz
En fournissant une chaîne comme argument 𝐞𝐧𝐝 , elle remplace le saut de ligne. Par exemple, pour concaténer les sorties de fonctions 𝐩𝐫𝐢𝐧𝐭() consécutives sans saut de ligne, utilisez une chaîne vide » .
print('abc', end='---') print('xyz') # abc---xyz print('abc', end='') print('xyz') # abcxyz
La valeur par défaut de l’argument 𝐞𝐧𝐝 est le caractère de nouvelle ligne ‘\𝐧’ .
Imprimer plusieurs variables/littéraux : 𝐬𝐞𝐩
Lorsque vous fournissez plusieurs variables, chaînes ou nombres sous forme d’arguments séparés par des virgules à la fonction 𝐩𝐫𝐢𝐧𝐭() , elles sont affichées avec des espaces comme séparateurs par défaut.
i = 100 print('apple', i, 0.123) # apple 100 0.123
En spécifiant l’argument 𝐬𝐞𝐩 , vous pouvez remplacer le séparateur par défaut (espace) par n’importe quelle chaîne. Si vous spécifiez le caractère de nouvelle ligne \𝐧 , les valeurs seront affichées avec une nouvelle ligne pour chacune.
print('apple', i, 0.123, sep='----') # apple----100----0.123 print('apple', i, 0.123, sep='\n') # apple # 100 # 0.123
Pour plus de détails sur les sauts de ligne de chaîne, reportez-vous à l’article suivant :
De plus, si vous souhaitez concaténer plusieurs chaînes pour créer une nouvelle chaîne, reportez-vous à l’article suivant :
Imprimer les éléments de la liste séparés par n’importe quel caractère
Comme mentionné ci-dessus, lorsque vous imprimez directement une liste en utilisant 𝐩𝐫𝐢𝐧𝐭() , cela ressemble à ceci :
l = [0, 1, 2] print(l) # [0, 1, 2]
En ajoutant un astérisque * à la liste et en le fournissant comme argument de fonction, chaque élément est développé et passé comme argument séparé.
Par défaut, chaque élément est affiché séparément par un espace.
print(*l) # => print(0, 1, 2) # 0 1 2
Vous pouvez définir le délimiteur avec l’argument 𝐬𝐞𝐩 .
print(*l, sep='') # 012 print(*l, sep='-') # 0-1-2
Alternativement, vous pouvez créer une chaîne concaténée des éléments de la liste et l’imprimer en utilisant 𝐩𝐫𝐢𝐧𝐭() .
s = '-'.join([str(i) for i in l]) print(s) # 0-1-2
Imprimer des chaînes avec des variables intégrées
Il existe trois façons d’intégrer la valeur d’une variable dans une chaîne :
- Style 𝐩𝐫𝐢𝐧𝐭𝐟 avec pourcentage %
- La méthode de chaîne 𝐟𝐨𝐫𝐦𝐚𝐭()
- Cordes en fa
La documentation officielle sur le style 𝐩𝐫𝐢𝐧𝐭𝐟 contient la note suivante :
Remarque : les opérations de formatage décrites ici présentent diverses particularités qui conduisent à un certain nombre d’erreurs courantes (comme l’échec de l’affichage correct des tuples et des dictionnaires). L’utilisation des nouveaux littéraux de chaîne formatés, de l’interface 𝐬𝐭𝐫.𝐟𝐨𝐫𝐦𝐚𝐭() ou des chaînes de modèle peut aider à éviter ces erreurs. Types intégrés – Formatage de chaîne de style printf — Documentation Python 3.11.3
À moins que vous ne soyez familier avec la méthode 𝐩𝐫𝐢𝐧𝐭𝐟 de style C , qui utilise des spécificateurs de conversion comme %𝐝 , %𝐟.2 et %𝐬 , il est recommandé d’utiliser la méthode 𝐟𝐨𝐫𝐦𝐚𝐭() ou les f-strings, comme mentionné dans la documentation officielle.
Notez que les f-strings ont été ajoutées dans Python 3.6 et ne sont pas disponibles dans les versions antérieures.
Style 𝐩𝐫𝐢𝐧𝐭𝐟 avec pourcentage %
Pour remplacer %𝐝 , %𝐬 , etc., par des variables, utilisez la syntaxe suivante :
string % variable
S’il y a plusieurs variables, spécifiquesz-les sous forme de tuple en les entourant de () et en les séparant par des virgules , .
s = 'Alice' i = 25 print('Alice is %d years old' % i) # Alice is 25 years old print('%s is %d years old' % (s, i)) # Alice is 25 years old
Les spécificateurs de conversion sont %𝐝 pour les entiers, %𝐟 pour les nombres à virgule flottante et %𝐬 pour les chaînes. Pour plus de détails sur les options de formatage, consultez la documentation officielle ci-dessous.
Méthode de chaîne 𝐟𝐨𝐫𝐦𝐚𝐭()
Vous pouvez utiliser la méthode de chaîne 𝐟𝐨𝐫𝐦𝐚𝐭() pour remplacer les champs de remplacement {} dans la chaîne par les variables spécifiées. S’il y a plusieurs variables, séparez-les par des virgules , .
string.format(variable)
print('Alice is {} years old'.format(i)) # Alice is 25 years old print('{} is {} years old'.format(s, i)) # Alice is 25 years old
En spécifiant un index (un entier commençant à 0 ) dans le champ de remplacement {} , la valeur est remplacée en fonction de la position de l’argument. Cette approche est utile lorsque vous devez réutiliser la même valeur plusieurs fois.
print('{0} is {1} years old / {0}{0}{0}'.format(s, i)) # Alice is 25 years old / AliceAliceAlice
En spécifiant une chaîne dans le champ de remplacement {} , la valeur est remplacée par la valeur spécifiée comme argument de mot-clé.
print('{name} is {age} years old'.format(name=s, age=i)) # Alice is 25 years old
Si vous souhaitez afficher les accolades { , } dans la telle laquelle, utilisez {{ et }} .
print('{} is {} years old / {{xxx}}'.format(s, i)) # Alice is 25 years old / {xxx}
Pour plus de détails sur la méthode 𝐟𝐨𝐫𝐦𝐚𝐭() , consultez l’article ci-dessous.
Cordes en fa
Les chaînes F sont des chaînes avec un f avant le littéral de chaîne (par exemple, 𝐟’𝐱𝐱𝐱’ ).
Vous pouvez accélérer directement les variables dans le champ de remplacement {} dans la chaîne.
s = 'Alice' i = 25 print(f'{s} is {i} years old') # Alice is 25 years old
Pour plus de détails sur les cordes f, consultez l’article suivant.
Imprimer des valeurs numériques avec le format spécifié
En spécifiant une chaîne de format dans le champ de remplacement {} dans la chaîne appelant la méthode 𝐟𝐨𝐫𝐦𝐚𝐭() ou dans une chaîne f, vous pouvez formater et générer des valeurs numériques dans n’importe quel format souhaité.
Écrivez la chaîne de format sous la forme {:𝐟𝐨𝐫𝐦𝐚𝐭_𝐬𝐭𝐫𝐢𝐧𝐠} en vertu de la chaîne de format après le : . Si vous souhaitez préciser un index ou un nom dans le champ de remplacement, écrivez :𝐟𝐨𝐫𝐦𝐚𝐭_𝐬𝐭𝐫𝐢𝐧𝐠 après celui-ci.
number = 0.45 print('{0:.4f} is {0:.2%}'.format(number)) # 0.4500 is 45.00% print(f'{number:.4f} is {number:.2%}') # 0.4500 is 45.00%
Différents formats de sortie peuvent être obtenus à l’aide de la chaîne de format :
- Alignement (gauche, centre, droite)
- Rembourrage de zéros
- Binaire, octal, hexadécimal
- Décimales
- Notation exponentielle
- Pour cent
i = 255 print('left : {:<8}'.format(i)) print('center : {:^8}'.format(i)) print('right : {:>8}'.format(i)) print('zero : {:08}'.format(i)) print('bin : {:b}'.format(i)) print('oct : {:o}'.format(i)) print('hex : {:x}'.format(i)) # left : 255 # center : 255 # right : 255 # zero : 00000255 # bin : 11111111 # oct : 377 # hex : ff f = 0.1234 print('digit : {:.2}'.format(f)) print('digit : {:.6f}'.format(f)) print('exp : {:.4e}'.format(f)) print('percent : {:.0%}'.format(f)) # digit : 0.12 # digit : 0.123400 # exp : 1.2340e-01 # percent : 12%
Bien que les exemples utilisent la méthode 𝐟𝐨𝐫𝐦𝐚𝐭() , vous pouvez également appliquer les mêmes chaînes de format avec des chaînes f.
Pour une explication plus détaillée de la méthode 𝐟𝐨𝐫𝐦𝐚𝐭() et des chaînes de format, reportez-vous à l’article ci-dessous.