Connaissez vous les 10 secrets de print de python ?

image by Real Python

© Illustration de Real Python

Salut les 🐍 vous pensiez tout savoir sur notre bon vieux print() ? Préparez-vous à avoir l'esprit soufflé comme un oeuf de Pâques dans un micro-ondes ! Voici 10 faits sur print() qui vont vous faire remettre en question toute votre existence de codeur.

1. print() est en réalité une fonction déguisée

Surprise ! En Python 3, print n'est pas une déclaration, mais une vraie fonction.

print(print)
# Sortie : <built-in function print>

2. Le sep secret

print() a un paramètre sep qui contrôle le séparateur entre les arguments. Par défaut, c'est un espace, mais vous pouvez le transformer en licorne si ça vous chante !

print("Python", "c'est", "cool", sep=" 🦄 ")
# Sortie : Python 🦄 c'est 🦄 cool

3. La fin n'est pas la fin

Le paramètre end vous permet de contrôler ce qui se passe à la fin. Fini les sauts de ligne automatiques !

print("Je ne veux pas sauter de ligne", end=" 😱 ")
print("Moi non plus !")
# Sortie : Je ne veux pas sauter de ligne 😱 Moi non plus !

4. print() est un maître du déguisement

Vous pouvez redéfinir print().

def print(*args):
    __builtins__.print("J'ai piraté ton print !", *args)
    
print("Hello")  
# Sortie : J'ai piraté ton print ! Hello

5. Le flush mystérieux

Le paramètre flush force l'affichage immédiat. Utile quand vous voulez voir vos prints avant que le programme ne plante lamentablement.

import time
print("Je suis rapide!", flush=True)
time.sleep(10)
print("J'ai pris mon temps...")
# Sortie : Nah tu attendais à quoi ? je suis pas un console...Test it!

6. print() parle aux fichiers

Avec le paramètre file, peut écrire dans n'importe quel objet fichier.

with open('codingteam_story.txt', 'w') as f:
    print("Il était une fois...", file=f)

7. Le retour silencieux

print() retourne toujours None.

x = print("Coucou")
print(x)  
# Sortie : None (Explique moi ça en commentaire)

8. L'astuce du print multiligne

Utilisez des triples guillemets pour des prints multilignes sans \n (Toi tu utilises toujours \n pour tes sauts de ligne 😁)

print("""
Ceci
est
sur
plusieurs
lignes
""")

9. print() est polyglotte

Il peut gérer plusieurs encodages.

print("Здравствуй, мир!")  # Bonjour monde en russe 
print("こんにちは世界!")  # Bonjour monde en japonais

10. Le pouvoir de l'étoile

Utilisez * pour unpacker des listes ou des tuples dans print()

ma_liste = ["Python", "c'est", "génial"]
print(*ma_liste)  
# Sortie : Python c'est génial

Voilà, maintenant vous connaissez les secrets les plus obscurs de print() ! La prochaine fois que quelqu'un vous dira que print() est ennuyeux, montrez-lui cet article et regardez son cerveau exploser 💥

N'oubliez pas : avec un grand print() viennent de grandes responsabilités. Utilisez ces astuces avec sagesse, ou au moins pour impressionner vos collègues lors de la prochaine réunion de code review ! 🦸‍♂️

  • A+
  • A-