Python lire des données au clavier

Faire saisir en clavier un réel, un entier ou une chaîne de caractère par l’utilisateur en python.

Même pour de petit programme, il est parfois utile de savoir communiquer avec l’utilisateur, nous allons voir comment faire saisir un entier, une chaîne de caractères et des réels dans un terminal avec un petit programme en python.

Nous allons utiliser la fonction input mais avant, je me permets de faire un petit conseil :

N’utilisez pas la fonction input si vous êtes en python 2.X

Pourquoi ? dans un terminal, saisir python ,  vous vous retrouvez en console python, maintenant si par défaut la commande python lance une version 2.x, saisir et valider : input(‘Saisir un truc svp : ‘)  puis lorsque vous avez le la main saisir simplement : __import_(‘os’).system(‘ls’) . Au final ce qui est saisie n’est pas juste recopié mais la commande ls est directement exécutée, alors imaginez avec un rm -rf /*  ce qui se passerai (surtout ne le faites pas). Sur la capture d’écran qui suit, vous pouvez voir la différence entre un python 2.7 et python 3.5  :

pourquoi pas d'input en python 2.xx
pourquoi pas d’input en python 2.xx

Revenons à nos moutons.

Saisie par l’utilisateur d’un entier

Nous allons faire simplement un petit script, dans un fichier input_entier.py, saisir :

#!/usr/bin/python3

error = True
while error :
     try:
          entier = int(input('Donnez un entier : '))
          error = False
     except:
          print('Une valeur entière est attendue !')
print('Entier : {}'.format(entier))

Nous avons besoin de convertir ce qui est rendu par la commande input, il s’agit par défaut d’un variable de type string, d’où le int().

Saisie par l’utilisateur d’un nombre à virgule

Avec le même principe que pour un nombre entier, nous allons devoir convertir les caractères saisies pour qu’il soit un nombre de type float.

error = True
while error:
        try:
                reel = float(input("Saisir un reel : "))
                error = False
        except:
                print("Erreur, ce n'est pas un reel !")
print("Reel saisie : {}".format(reel))

Vous l’aurez compris, il n’y a pas de difficulté.

Saisie de caractères par l’utilisateur

Je garde le plus simple pour la fin, à partir du moment que vous avez compris que pour un nombre, vous devez convertir la saisie, si il n’y a pas de conversion, il s’agit donc d’une variable de type string qui sera saisie au clavier.

Voilà un petit tutoriel simple qui sera la première étape pour l’élaboration d’un programme nécessitant une saisie.

N’hésitez pas à commenter et à partager.

Laisser un commentaire