cours
Fonction Print() de Python
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!
.
print("Hello, World!")
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.
print "Hello, World!"
File "", line 1
print "Hello, World!"
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello, World!")?
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/class
de la fonction print()
.
type(print)
builtin_function_or_method
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!")
Hello, World!
Hello, World!
print("Hello, World!")
print()
print("Hello, World!")
Hello, World!
Hello, World!
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')
datacamp tutorial on python print function
print('datacamp','tutorial','on','python','print','function',sep='\n') #`\n` will put each word in a new line
datacamp
tutorial
on
python
print
function
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=',')
datacamp,tutorial,on,python,print,function
print('datacamp','tutorial','on','python','print','function',sep='\n\n')
datacamp
tutorial
on
python
print
function
print('datacamp','tutorial','on','python','print','function',sep=',+')
datacamp,+tutorial,+on,+python,+print,+function
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)
[1, 2, 3, 4, 5, 6]
-
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înestr1
, 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'
print(str1)
print(str2)
datacamp tutorial on
python print function
print(str1,end=' ')
print(str2)
datacamp tutorial on python print function
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 :
def value(items):
for item in items:
print(item, end=' ')
value([1,2,3,4])
1 2 3 4
-
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.
file = open('print.txt','a+')
def value(items):
for item in items:
print(item, file=file)
file.close() # close the file ones the function execution completes.
value([1,2,3,4,5,6,7,8,9,10])
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)
Please enter your email-id :
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)
Print Function
The topic of today's tutorial is: Print Function
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.")
2 is an integer while Datacamp is a string.
-
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))
2 is an integer while Datacamp is a string.
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))
Datacamp is an integer while Datacamp is a string.
-
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))
2 is an integer while Datacamp is a string.
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))
2 is an integer while Datacamp is a string.
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))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
----> 1 print("%d is an integer while %d is a string."%(a,b))
TypeError: %d format: a number is required, not str
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.
Cours de Python
cours
Introduction à la science des données en Python
cours