Beaucoup d'entre vous, en lisant ce tutoriel, pourraient penser qu'il n'y a rien à découvrir à propos d'une simple fonction Python Print puisque vous avez tous commencé à apprendre Python avec le sempiternel exemple de l'impression de Hello, World!. Il est également vrai qu'en Python ou, d'ailleurs, dans n'importe quel langage de programmation, la fonction Print est la plus basique et le petit pas que l'on fait lors de l'apprentissage d'un langage particulier. Cependant, lorsque vous apprenez un langage de programmation, vous avez parfois tendance à vous concentrer sur des sujets plus avancés et à oublier les subtilités ou les capacités d'une simple fonction que vous utiliserez presque toujours.
Le tutoriel d'aujourd'hui se concentre entièrement sur la fonction Print de Python ; vous apprendrez à connaître la fonction la plus sous-estimée.
Commençons ce tutoriel par l'impression de l'exemple Hello, World!.
Contrairement à Python2, qui ne vous obligeait pas à mettre une parenthèse, dans Python3, la parenthèse est indispensable sous peine d'entraîner une erreur de syntaxe, comme indiqué ci-dessous.
Il renvoie builtin_function_or_method, ce qui signifie qu'il s'agit d'un élément prédéfini ou intégré Python Function.
Supposons maintenant que vous souhaitiez ajouter une nouvelle ligne ou un espace vertical entre les deux sorties ci-dessous. Pour ce faire, il vous suffit d'appeler la fonction print() sans lui transmettre d'argument.
print("Hello, World!");print("Hello, World!")Propulsé par
Examinons la syntaxe de la fonction print(). print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Comme vous le savez maintenant, la fonction print imprime les valeurs dans un flux, ou dans sys.stdout par défaut. L'option sys.stdout ou sortie standard du système signifie que la fonction print imprimera la sortie sur l'écran, et peut même être remplacée par stdin ou stderr.
Arguments facultatifs de type mot-clé :
sep: Il peut s'agir d'une chaîne de caractères que vous souhaitez insérer entre les valeurs, la valeur par défaut étant l'espace.
Plaçons une liste de mots dans la fonction print et séparons-les par une nouvelle ligne. N'oubliez pas que, par défaut, le séparateur ajoute un espace vide entre chaque mot.
print('datacamp','tutorial','on','python','print','function')Propulsé par
datacamp tutorial on python print functionPropulsé par
print('datacamp','tutorial','on','python','print','function',sep='\n')#`\n` will put each word in a new linePropulsé par
datacamp
tutorial
on
python
print
functionPropulsé par
De même, vous pouvez les séparer par une virgule, ou ajouter deux \n qui ajouteront une ligne vide entre les deux ou même ajouter un signe plus $(+)$.
print('datacamp','tutorial','on','python','print','function',sep=',')Propulsé par
datacamp,tutorial,on,python,print,functionPropulsé par
print('datacamp','tutorial','on','python','print','function',sep='\n\n')Propulsé par
datacamp
tutorial
on
python
print
functionPropulsé par
print('datacamp','tutorial','on','python','print','function',sep=',+')Propulsé par
datacamp,+tutorial,+on,+python,+print,+functionPropulsé par
Avant de passer à l'argument suivant, à savoir end, rappelez-vous que vous pouvez également passer une variable à la fonction print. Pour comprendre cela, prenons un exemple en définissant une liste d'entiers et en la passant à la fonction print. Vous vous attendez à ce qu'il imprime la liste des entiers.
int_list =[1,2,3,4,5,6]print(int_list)Propulsé par
end: Il s'agit d'une chaîne de caractères ajoutée après la dernière valeur, par défaut une nouvelle ligne. Il permet au programmeur de définir un caractère de fin personnalisé pour chaque appel d'impression, autre que la nouvelle ligne par défaut ou \n.
Supposons que vous ayez deux chaînes de caractères et que vous souhaitiez les relier par un espace, il vous suffit d'ajouter l'argument end entre guillemets dans la fonction d'impression de la première chaîne str1, et vous pouvez vous attendre à ce que les deux chaînes de caractères soient reliées par un espace.
str1 ='datacamp tutorial on'
str2 ='python print function'Propulsé par
datacamp tutorial on python print functionPropulsé par
Prenons un autre exemple, celui d'une fonction dont le rôle est d'imprimer toutes les valeurs d'une liste sur la même ligne. Vous pouvez y parvenir en utilisant l'argument end, comme indiqué ci-dessous :
defvalue(items):for item in items:print(item, end=' ')Propulsé par
file: Un objet de type fichier (stream) ; par défaut, il s'agit du fichier sys.stdout actuel. Vous pouvez indiquer ici le fichier dans lequel vous souhaitez écrire ou ajouter la sortie de la fonction d'impression.
En utilisant l'argument file, vous pouvez enregistrer la sortie de la fonction print dans un fichier sous différents formats tels que .csv, .txt, etc. Pour comprendre cela, prenons un exemple dans lequel vous itérez sur chaque élément de la liste. Il est enregistré dans un fichier texte. Pour ce faire, vous devez d'abord ouvrir un fichier texte à l'adresse append, dans lequel vous enregistrerez la sortie de l'instruction print. Ensuite, vous définirez la fonction dont la sortie sera ajoutée au fichier texte.
Une fois l'exécution de la fonction ci-dessus terminée, vous devriez voir un fichier nommé print.txt dans votre répertoire actuel. Ouvrons-le et voyons ce qu'il contient.
D'après la sortie ci-dessus, il est clair que vous pouvez même enregistrer la sortie dans des fichiers et pas seulement l'imprimer sur le terminal ou dans le carnet de notes.
flush: Il détermine s'il faut forcer la vidange du flux. Par défaut, il est défini sur False.
Généralement, la sortie vers un fichier ou la console est mise en mémoire tampon, avec une sortie de texte au moins jusqu'à ce que vous imprimiez une nouvelle ligne(Source). Buffer signifie que la sortie est stockée dans une sorte de registre où la sortie réside avant qu'elle ne soit prête à être stockée ou que le fichier ne soit définitivement fermé. Le rôle du flush est de s'assurer que la sortie, qui est mise en mémoire tampon, arrive à destination en toute sécurité.
import time
print('Please enter your email-id : ', end=' ')#print('Please enter your email-id : ', end=' ', flush=True) #run this to see the difference and comment out the above line of code.
time.sleep(5)Propulsé par
Si vous exécutez les lignes de code ci-dessus dans le terminal, vous remarquerez que la chaîne d'invite ne s'affiche pas avant la fin de la mise en veille et la sortie du programme(Source). Cependant, si vous ajoutez flush=True dans la fonction d'impression, vous verrez l'invite, puis vous devrez attendre 5 secondes pour que le programme se termine.
D'une certaine manière, le Jupyter Notebook ou le Jupyter Lab s'en occupe et affiche l'invite avant le délai de 5 secondes, donc si vous voulez tester cette fonctionnalité d'impression, assurez-vous de l'exécuter dans le terminal en ligne de commande et non dans le Jupyter Notebook.
Voyons maintenant comment vous pouvez utiliser la fonction print pour recueillir les données de l'utilisateur dans le bloc-notes jupyter. Pour cela, vous utiliserez la fonction intégrée de Python input().
tutorial_topic =input()print("The topic of today's tutorial is: ", end='')print(tutorial_topic)Propulsé par
Print Function
The topic of today's tutorial is: Print Function
Propulsé par
Dès que vous exécutez la cellule ci-dessus, vous devriez obtenir le résultat suivant :
Ici, vous avez défini un argument optionnel nommé end que vous avez appris précédemment, qui concatène l'instruction statique à l'intérieur de l'instruction print avec l'entrée utilisateur.
Voyons quelques façons plus originales d'imprimer des valeurs variables à l'aide de la fonction print.
Pour afficher la valeur d'une variable avec une chaîne prédéfinie, il suffit d'ajouter une virgule entre les deux. Ici, la position de la chaîne prédéfinie et de la variable n'a pas d'importance.
a =2
b ="Datacamp"print(a,"is an integer while",b,"is a string.")Propulsé par
2 is an integer while Datacamp is a string.Propulsé par
Vous pouvez utiliser l'argument format qui vous permet de passer autant de variables que vous souhaitez imprimer. Lorsque vous passez les variables dans la fonction format, vous devez spécifier les numéros d'index (ordre dans lequel ils sont placés dans l'argument format) dans la chaîne prédéfinie. Cette fonction d'impression vous servira donc de modèle.
Une autre chose à retenir est qu'ici les numéros d'index sont représentés par un crochet {} qui représente un espace réservé.
Comprenons-le à l'aide de l'exemple ci-dessous :
a =2
b ="Datacamp"print("{0} is an integer while {1} is a string.".format(a,b))Propulsé par
2 is an integer while Datacamp is a string.Propulsé par
Si vous mettez le numéro d'index de la deuxième variable aux deux endroits, comme prévu, les mêmes valeurs seront imprimées, dans ce cas, la variable b pour les deux.
print("{1} is an integer while {1} is a string.".format(a,b))Propulsé par
Datacamp is an integer while Datacamp is a string.Propulsé par
Comme dans le cas d'un argument format où la fonction print sert de modèle, vous disposez d'un signe de pourcentage (%) que vous pouvez utiliser pour imprimer les valeurs des variables.
Comme l'argument de format, cet argument comporte également un concept de caractères de remplacement. Cependant, contrairement à la fonction format où vous ne transmettez que les numéros d'index, dans cette fonction, vous devez également spécifier le type de données que l'espace réservé doit attendre.
%d est utilisé comme espace réservé pour les valeurs numériques ou décimales.
%s est utilisé comme espace réservé pour les chaînes de caractères.
a =2
b ="Datacamp"print("%d is an integer while %s is a string."%(a,b))Propulsé par
2 is an integer while Datacamp is a string.Propulsé par
Voyons ce qui se passe si vous spécifiez %s pour la variable a qui est un entier.
print("%s is an integer while %s is a string."%(a,b))Propulsé par
2 is an integer while Datacamp is a string.Propulsé par
Comme vous pouvez le voir dans l'exemple ci-dessus, cela fonctionne toujours. La raison en est que la fonction Print a implicitement exécuté typecasting et converti l'entier en chaîne de caractères. Or, le contraire n'est pas vrai. Il ne parviendra pas à convertir une chaîne de caractères en un nombre entier et produira un message TypeError.
Découvrons-le.
print("%d is an integer while %d is a string."%(a,b))Propulsé par
---------------------------------------------------------------------------
TypeError Traceback(most recent call last)in---->1print("%d is an integer while %d is a string."%(a,b))TypeError:%d format: a number is required, not str
Propulsé par
Conclusion
Félicitations pour avoir terminé le tutoriel.
Ce tutoriel était un bon point de départ pour les débutants qui aspirent à devenir compétents en Python. Vous voudrez peut-être vous amuser un peu plus avec la fonction Print et explorer d'autres fonctionnalités que nous n'avons peut-être pas abordées dans ce tutoriel.
N'hésitez pas à poser toutes les questions relatives à ce tutoriel dans la section des commentaires ci-dessous.
Découvrez les fonctions et méthodes des listes Python. Veuillez suivre les exemples de code pour list() et d'autres fonctions et méthodes Python dès maintenant.
Découvrez les fonctions lambda Python, leur utilité et quand les utiliser. Comprend des exemples pratiques et des bonnes pratiques pour une mise en œuvre efficace.
Si vous débutez en Python et souhaitez en savoir plus, suivez la formation Introduction à la science des données en Python de DataCamp.
Beaucoup d'entre vous, en lisant ce tutoriel, pourraient penser qu'il n'y a rien à découvrir à propos d'une simple fonction Python Print puisque vous avez tous commencé à apprendre Python avec le sempiternel exemple de l'impression de
Hello, World!. Il est également vrai qu'en Python ou, d'ailleurs, dans n'importe quel langage de programmation, la fonction Print est la plus basique et le petit pas que l'on fait lors de l'apprentissage d'un langage particulier. Cependant, lorsque vous apprenez un langage de programmation, vous avez parfois tendance à vous concentrer sur des sujets plus avancés et à oublier les subtilités ou les capacités d'une simple fonction que vous utiliserez presque toujours.Le tutoriel d'aujourd'hui se concentre entièrement sur la fonction Print de Python ; vous apprendrez à connaître la fonction la plus sous-estimée.
Commençons ce tutoriel par l'impression de l'exemple
Hello, World!.Contrairement à
Python2, qui ne vous obligeait pas à mettre une parenthèse, dansPython3, la parenthèse est indispensable sous peine d'entraîner une erreur de syntaxe, comme indiqué ci-dessous.D'après le résultat ci-dessus, vous pouvez conclure que dans Python3,
print()n'est pas une déclaration mais une fonction.Ceci étant dit, vérifions le site
type/classde la fonctionprint().Il renvoie
builtin_function_or_method, ce qui signifie qu'il s'agit d'un élément prédéfini ou intégréPython Function.Supposons maintenant que vous souhaitiez ajouter une nouvelle ligne ou un espace vertical entre les deux sorties ci-dessous. Pour ce faire, il vous suffit d'appeler la fonction
print()sans lui transmettre d'argument.Examinons la syntaxe de la fonction
print(). print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Comme vous le savez maintenant, la fonction print imprime les valeurs dans un flux, ou dans sys.stdout par défaut. L'option sys.stdout ou sortie standard du système signifie que la fonction print imprimera la sortie sur l'écran, et peut même être remplacée par stdin ou stderr.Arguments facultatifs de type mot-clé :
sep: Il peut s'agir d'une chaîne de caractères que vous souhaitez insérer entre les valeurs, la valeur par défaut étant l'espace.Plaçons une liste de mots dans la fonction print et séparons-les par une nouvelle ligne. N'oubliez pas que, par défaut, le séparateur ajoute un espace vide entre chaque mot.
De même, vous pouvez les séparer par une virgule, ou ajouter deux
\nqui ajouteront une ligne vide entre les deux ou même ajouter un signe plus $(+)$.Avant de passer à l'argument suivant, à savoir
end, rappelez-vous que vous pouvez également passer une variable à la fonction print. Pour comprendre cela, prenons un exemple en définissant une liste d'entiers et en la passant à la fonction print. Vous vous attendez à ce qu'il imprime la liste des entiers.end: Il s'agit d'une chaîne de caractères ajoutée après la dernière valeur, par défaut une nouvelle ligne. Il permet au programmeur de définir un caractère de fin personnalisé pour chaque appel d'impression, autre que la nouvelle ligne par défaut ou\n.Supposons que vous ayez deux chaînes de caractères et que vous souhaitiez les relier par un espace, il vous suffit d'ajouter l'argument
endentre guillemets dans la fonction d'impression de la première chaînestr1, et vous pouvez vous attendre à ce que les deux chaînes de caractères soient reliées par un espace.Prenons un autre exemple, celui d'une fonction dont le rôle est d'imprimer toutes les valeurs d'une liste sur la même ligne. Vous pouvez y parvenir en utilisant l'argument
end, comme indiqué ci-dessous :file: Un objet de type fichier (stream) ; par défaut, il s'agit du fichier sys.stdout actuel. Vous pouvez indiquer ici le fichier dans lequel vous souhaitez écrire ou ajouter la sortie de la fonction d'impression.En utilisant l'argument file, vous pouvez enregistrer la sortie de la fonction print dans un fichier sous différents formats tels que
.csv,.txt, etc. Pour comprendre cela, prenons un exemple dans lequel vous itérez sur chaque élément de la liste. Il est enregistré dans un fichier texte. Pour ce faire, vous devez d'abord ouvrir un fichier texte à l'adresseappend, dans lequel vous enregistrerez la sortie de l'instruction print. Ensuite, vous définirez la fonction dont la sortie sera ajoutée au fichier texte.Une fois l'exécution de la fonction ci-dessus terminée, vous devriez voir un fichier nommé
print.txtdans votre répertoire actuel. Ouvrons-le et voyons ce qu'il contient.D'après la sortie ci-dessus, il est clair que vous pouvez même enregistrer la sortie dans des fichiers et pas seulement l'imprimer sur le terminal ou dans le carnet de notes.
flush: Il détermine s'il faut forcer la vidange du flux. Par défaut, il est défini sur False.Généralement, la sortie vers un fichier ou la console est mise en mémoire tampon, avec une sortie de texte au moins jusqu'à ce que vous imprimiez une nouvelle ligne(Source). Buffer signifie que la sortie est stockée dans une sorte de registre où la sortie réside avant qu'elle ne soit prête à être stockée ou que le fichier ne soit définitivement fermé. Le rôle du flush est de s'assurer que la sortie, qui est mise en mémoire tampon, arrive à destination en toute sécurité.
Si vous exécutez les lignes de code ci-dessus dans le terminal, vous remarquerez que la chaîne d'invite ne s'affiche pas avant la fin de la mise en veille et la sortie du programme(Source). Cependant, si vous ajoutez
flush=Truedans la fonction d'impression, vous verrez l'invite, puis vous devrez attendre 5 secondes pour que le programme se termine.D'une certaine manière, le Jupyter Notebook ou le Jupyter Lab s'en occupe et affiche l'invite avant le délai de 5 secondes, donc si vous voulez tester cette fonctionnalité d'impression, assurez-vous de l'exécuter dans le terminal en ligne de commande et non dans le Jupyter Notebook.
Voyons maintenant comment vous pouvez utiliser la fonction print pour recueillir les données de l'utilisateur dans le bloc-notes jupyter. Pour cela, vous utiliserez la fonction intégrée de Python
input().Dès que vous exécutez la cellule ci-dessus, vous devriez obtenir le résultat suivant :
Ici, vous avez défini un argument optionnel nommé
endque vous avez appris précédemment, qui concatène l'instruction statique à l'intérieur de l'instruction print avec l'entrée utilisateur.Voyons quelques façons plus originales d'imprimer des valeurs variables à l'aide de la fonction print.
Vous pouvez utiliser l'argument
formatqui vous permet de passer autant de variables que vous souhaitez imprimer. Lorsque vous passez les variables dans la fonction format, vous devez spécifier les numéros d'index (ordre dans lequel ils sont placés dans l'argument format) dans la chaîne prédéfinie. Cette fonction d'impression vous servira donc de modèle.Une autre chose à retenir est qu'ici les numéros d'index sont représentés par un crochet
{}qui représente un espace réservé.Comprenons-le à l'aide de l'exemple ci-dessous :
Si vous mettez le numéro d'index de la deuxième variable aux deux endroits, comme prévu, les mêmes valeurs seront imprimées, dans ce cas, la variable
bpour les deux.Comme dans le cas d'un argument
formatoù la fonction print sert de modèle, vous disposez d'un signe de pourcentage (%) que vous pouvez utiliser pour imprimer les valeurs des variables.Comme l'argument de format, cet argument comporte également un concept de caractères de remplacement. Cependant, contrairement à la fonction
formatoù vous ne transmettez que les numéros d'index, dans cette fonction, vous devez également spécifier le type de données que l'espace réservé doit attendre.Voyons ce qui se passe si vous spécifiez
%spour la variableaqui est un entier.Comme vous pouvez le voir dans l'exemple ci-dessus, cela fonctionne toujours. La raison en est que la fonction
Printa implicitement exécutétypecastinget converti l'entier en chaîne de caractères. Or, le contraire n'est pas vrai. Il ne parviendra pas à convertir une chaîne de caractères en un nombre entier et produira un messageTypeError.Découvrons-le.
Conclusion
Félicitations pour avoir terminé le tutoriel.
Ce tutoriel était un bon point de départ pour les débutants qui aspirent à devenir compétents en Python. Vous voudrez peut-être vous amuser un peu plus avec la fonction Print et explorer d'autres fonctionnalités que nous n'avons peut-être pas abordées dans ce tutoriel.
N'hésitez pas à poser toutes les questions relatives à ce tutoriel dans la section des commentaires ci-dessous.
Si vous débutez en Python et souhaitez en savoir plus, consultez le cours Introduction à la science des données en Python et le tutoriel sur les fonctions Python de DataCamp.