Inititation à la programmation avec Python (niveau 2nde)

Épisode n°5 : interragir avec l'utilisateur : input et print

Print

On a déjà pas mal utilisé cette fonction depuis le début de ces tutoriels...

Vous connaissez donc l'essentiel.

Quelques rappels :

  • on peut passer plusieurs arguments à la fonction print(), séparés par des virgules.
  • deux chaînes de caractères peuvent être concaténées avec le signe +.

Complément : on peut transformer un nombre en chaînes de caractères avec la fonction str()

In [1]:
print("1- Bonjour")

print("2- Bonjour", "les", "amis !")     # les virgules créent une espace automatiquement
   
print("3- Bonjour" + "les" + "amis !")   # avec la concaténation, on doit prévoir les espaces si on en veut

print("4- Bonjour mes", 2, "amis !")     # Python se débrouille pour afficher des nombres tout seul !

print("5- Bonjour mes " + str(2) + " amis !") # ici on concatène la chaîne "2" avec le reste

print("6- Bonjour mes " + 2 + " amis !")      # ERREUR car le nombre 2 ne peut pas être concaténé !
1- Bonjour
2- Bonjour les amis !
3- Bonjourlesamis !
4- Bonjour mes 2 amis !
5- Bonjour mes 2 amis !
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-1-6acdbd807a8c> in <module>
      9 print("5- Bonjour mes " + str(2) + " amis !") # ici on concatène la chaîne "2" avec le reste
     10 
---> 11 print("6- Bonjour mes " + 2 + " amis !")      # ERREUR car le nombre 2 ne peut pas être concaténé !

TypeError: can only concatenate str (not "int") to str

Input

Pour recevoir de l'information d'un utlisateur derrière son clavier, on peut utiliser la fonction input(message) qui écrit un message et attend et renvoie au programme la saisie d'un texte au clavier.

C'est donc une fonction bloquante tant que la touche de validation (touche ENTRÉE) n'a pas été "frappée".

Pour pouvoir manipuler l'information saisie au clavier, il est indispensable d'affecter la valeur renoyée par la fonction input à une variable du programme.

Remarque importante : Tout le texte saisi jusqu'à la touche ENTRÉE est interprété comme du texte et uniquement du texte, même si on frappe sur le pavé numérique. Cela signifie que si l'intention du programmeur est de récupérer une saisie numérique, il faudra d'abord transformer cette saisie en nombre avec la fonction eval().

Encore une remarque : on rencontre aussi assez souvent dans les programmes la transformation en nombres avec les fonctions int() ou float, qui transforment respectivement les saisies clavier de façon spécifique en nombre entier ou en nombre décimal.

Exemple : petit questionnaire

In [ ]:
# interraction avec l'utilisateur :
nom = input("Entrez votre nom : ")
prenom = input("Entrez votre prénom : ")
age = int(input("Entrez votre âge : "))
nombre = eval(input("Entrez un nombre entre 0 et 1 : "))
In [ ]:
# exploitation du questionnaire :

print("\nBonjour", prenom, nom, "!")

mon_age = 15
if age > mon_age:
    print("Tu es plus âgé que moi : pourras-tu me faire profiter de ton expérience ?")
elif age < mon_age:
    print("Tiens, tu es bien jeune !")
else:
    print("Ça alors, on a le même âge !")
    
print("Tu as choisi le nombre", nombre)

The End.

Cette première intitation s'arrête ici, mais bien entendu nous n'avons fait qu'effleurer la programmation avec Python.

Cependant vous connaissez les bases et vous êtes parré pour aller plus loin tout seul ou accompagné par un professseur si vous désirez choisir la Spécialité NSI (Numérique et Science Informatqiue) en classe de Première.

Un dernier conseil avant de se quitter, utilisez à outrance la commande help() pour en savoir plus sur un objet Python (et aussi la commande dir() qui liste les méthodes applicables à un objet):

In [ ]:
help(list.append)
In [ ]:
dir(list)
In [ ]: