Bases

Python input() : saisir et convertir une valeur

Apprenez à utiliser input() en Python pour demander une valeur à l’utilisateur, la convertir en nombre et éviter les erreurs courantes.

Python input() : saisir et convertir une valeur

La fonction input() fait partie des tout premiers outils utiles en programmation Python. Elle permet de rendre un script interactif en demandant une information à l’utilisateur pendant l’exécution : un prénom, un âge, un nombre, un mot de passe simple, un choix dans un menu, etc.

Quand on débute, input() semble très simple : on affiche un message, l’utilisateur tape une valeur, puis le programme la récupère. Mais il y a un détail essentiel à comprendre dès le départ : input() renvoie toujours du texte, c’est-à-dire une chaîne de caractères. Si l’on veut faire un calcul avec la valeur saisie, il faut souvent la convertir avec int() ou float().

Dans ce tutoriel, vous allez apprendre à demander une valeur à l’utilisateur, à stocker cette valeur dans une variable, à la convertir proprement selon le besoin, puis à gérer les erreurs les plus courantes. Nous verrons aussi plusieurs exemples complets pour bien distinguer les cas où il faut garder du texte et ceux où il faut transformer la saisie en nombre.

L’objectif est de vous donner une base solide et pratique pour utiliser input() dans vos premiers programmes Python sans confusion.

Prérequis

  • Savoir lancer un script Python depuis un terminal, un éditeur ou un environnement d’apprentissage.
  • Connaître la notion de variable en Python.
  • Comprendre qu’un programme s’exécute ligne par ligne.
  • Avoir vu au moins une fois print() pour afficher un résultat.

Matériel nécessaire

  • Python 3 installé
  • Un éditeur de code ou environnement Python
  • Un terminal ou une console Python

Étapes

  1. Comprendre le rôle de input()

    La fonction input() sert à mettre le programme en pause pour attendre une saisie au clavier. L’utilisateur tape une valeur, puis valide généralement avec la touche Entrée. Python récupère alors cette saisie et la renvoie au programme.

    Exemple minimal :

    python
    nom = input("Quel est votre prénom ? ")
    print("Bonjour", nom)

    Dans cet exemple, le script affiche un message, attend une réponse, stocke cette réponse dans la variable nom, puis affiche une salutation.

    Si l’utilisateur tape Lina, la variable nom contient le texte Lina.

    Il faut bien retenir que input() ne « devine » pas le type attendu. Même si l’utilisateur tape 25, Python récupère d’abord "25" comme une chaîne de caractères.

    C’est le point de départ de presque toutes les difficultés rencontrées par les débutants avec input().

  2. Première utilisation : demander un texte

    Des mains tapent sur un ordinateur portable pour convertir une saisie en entier dans un exercice Python, sur un bureau sobre éclairé par la lumière naturelle.
    Un ordinateur portable affiche un exercice Python où une valeur numérique saisie est utilisée dans un calcul, avec une main près du clavier.

    Le cas le plus simple consiste à demander une information textuelle. Dans ce cas, aucune conversion n’est nécessaire.

    python
    ville = input("Dans quelle ville habitez-vous ? ")
    print("Vous habitez à", ville)

    Ici, la réponse est naturellement du texte. Vous pouvez donc la réutiliser directement.

    Autres exemples adaptés aux chaînes de caractères :

    • un prénom,
    • un nom de famille,
    • un pays,
    • une couleur préférée,
    • une réponse libre.

    Exemple supplémentaire :

    python
    couleur = input("Quelle est votre couleur préférée ? ")
    print("Votre couleur préférée est", couleur)

    Dans ce type de programme, input() suffit à lui seul.

  3. Comprendre que input() renvoie toujours une chaîne

    Voici la règle la plus importante de ce tutoriel : le résultat de input() est toujours une chaîne de caractères.

    Regardez cet exemple :

    python
    age = input("Quel âge avez-vous ? ")
    print(age)

    Si l’utilisateur entre 18, la variable age contient le texte "18", et non le nombre 18.

    Cette différence semble discrète, mais elle change tout. Une chaîne de caractères sert à manipuler du texte. Un entier sert à faire des calculs.

    Par exemple, ce code pose problème :

    python
    age = input("Quel âge avez-vous ? ")
    resultat = age + 1
    print(resultat)

    Ici, Python ne peut pas additionner directement une chaîne et un entier. Le programme produit une erreur, car age n’est pas encore un nombre.

    Il faut donc convertir la saisie avant de calculer.

  4. Convertir une saisie en entier avec int()

    Vue rapprochée d’un ordinateur portable pendant un exercice Python sur la gestion d’erreurs de conversion avec try et except.

    Quand vous attendez un nombre entier, vous pouvez convertir la saisie avec int().

    python
    age = int(input("Quel âge avez-vous ? "))
    print(age + 1)

    Cette fois, si l’utilisateur saisit 18, Python transforme le texte "18" en entier 18. Le calcul age + 1 devient alors possible et le résultat affiché sera 19.

    Cette écriture est très fréquente en Python débutant :

    python
    variable = int(input("Message"))

    Elle combine deux étapes :

    1. demander une saisie avec input(),
    2. convertir cette saisie en entier avec int().

    Vous pouvez aussi écrire la conversion en deux lignes pour mieux comprendre ce qui se passe :

    python
    saisie = input("Quel âge avez-vous ? ")
    age = int(saisie)
    print(age + 1)

    Cette version est souvent plus pédagogique quand on débute.

    Utilisez int() pour des valeurs entières comme :

    • un âge,
    • un nombre d’enfants,
    • un nombre de pièces,
    • une quantité sans décimales,
    • un choix numérique dans un menu.
  5. Convertir une saisie en nombre décimal avec float()

    Si vous attendez un nombre avec une partie décimale, utilisez float().

    python
    taille = float(input("Quelle est votre taille en mètres ? "))
    print("Taille enregistrée :", taille)

    Dans ce cas, une valeur numérique décimale est convertie en type flottant.

    Exemple de calcul :

    python
    prix = float(input("Quel est le prix du produit ? "))
    quantite = int(input("Quelle quantité voulez-vous ? "))
    total = prix * quantite
    print("Total :", total)

    Ici, prix est un nombre décimal et quantite un entier. Le programme peut calculer un total correctement.

    Utilisez float() pour des valeurs comme :

    • un prix,
    • une distance,
    • un poids,
    • une température,
    • une moyenne.

    Quand vous débutez, la règle pratique est simple : int() pour les entiers, float() pour les nombres décimaux.

  6. Faire la différence entre texte et nombre

    Pour bien utiliser input(), il faut toujours se poser une question : est-ce que je veux conserver la saisie comme du texte, ou l’utiliser comme un nombre ?

    Exemple 1 : garder du texte

    python
    code_postal = input("Entrez votre code postal : ")
    print("Code postal :", code_postal)

    Même si un code postal ressemble à un nombre, on le traite souvent comme du texte, car on ne fait pas de calcul dessus.

    Exemple 2 : convertir en entier

    python
    nb_places = int(input("Combien de places voulez-vous réserver ? "))
    print("Places réservées :", nb_places)

    Ici, la valeur représente une quantité. La conversion en entier est logique.

    Exemple 3 : convertir en décimal

    python
    note = float(input("Entrez votre note : "))
    print("Note enregistrée :", note)

    La bonne pratique n’est donc pas de convertir systématiquement, mais de choisir selon le besoin réel du programme.

  7. Utiliser la valeur saisie dans un calcul

    Une fois la valeur convertie, vous pouvez l’utiliser dans des opérations mathématiques classiques.

    Exemple avec un entier :

    python
    nombre = int(input("Entrez un nombre entier : "))
    carre = nombre * nombre
    print("Le carré est :", carre)

    Exemple avec deux valeurs :

    python
    a = float(input("Entrez le premier nombre : "))
    b = float(input("Entrez le deuxième nombre : "))
    somme = a + b
    print("La somme est :", somme)

    Exemple avec une moyenne simple :

    python
    note1 = float(input("Première note : "))
    note2 = float(input("Deuxième note : "))
    moyenne = (note1 + note2) / 2
    print("La moyenne est :", moyenne)

    Ces exemples montrent que la conversion n’est pas une formalité : elle est indispensable pour transformer une saisie utilisateur en donnée exploitable.

  8. Concaténation de texte versus addition de nombres

    Les débutants confondent souvent deux comportements différents : assembler du texte et additionner des nombres.

    Regardez ce cas :

    python
    a = input("Entrez un premier nombre : ")
    b = input("Entrez un deuxième nombre : ")
    print(a + b)

    Si l’utilisateur saisit 2 puis 3, le résultat affiché sera 23, pas 5. Pourquoi ? Parce que a et b sont des chaînes de caractères. Python colle les textes l’un à la suite de l’autre.

    Pour obtenir une addition, il faut convertir :

    python
    a = int(input("Entrez un premier nombre : "))
    b = int(input("Entrez un deuxième nombre : "))
    print(a + b)

    Cette fois, avec 2 et 3, le résultat sera bien 5.

    Ce point est fondamental pour comprendre le comportement de input().

  9. Écrire des messages de saisie clairs

    Un bon programme ne se contente pas de demander une valeur : il indique clairement ce que l’utilisateur doit entrer.

    Comparez ces deux versions :

    python
    x = input("Valeur : ")

    et

    python
    x = float(input("Entrez la température en degrés : "))

    La deuxième version est plus précise. Elle réduit les erreurs et améliore l’expérience utilisateur.

    Voici quelques conseils simples :

    • Précisez la donnée attendue.
    • Indiquez l’unité si nécessaire.
    • Précisez si un nombre entier est attendu.
    • Évitez les messages trop vagues.

    Exemples clairs :

    python
    age = int(input("Entrez votre âge en années : "))
    prix = float(input("Entrez le prix en euros : "))
    prenom = input("Entrez votre prénom : ")

    Cette habitude simple rend vos scripts plus professionnels dès le départ.

  10. Gérer les erreurs de conversion avec try et except

    Si l’utilisateur saisit un texte alors que votre programme attend un entier ou un décimal, la conversion peut échouer. C’est une situation normale qu’il faut apprendre à gérer.

    Exemple fragile :

    python
    age = int(input("Entrez votre âge : "))
    print(age)

    Si l’utilisateur tape bonjour, la conversion en entier échoue et le programme s’arrête avec une erreur.

    Pour éviter cela, vous pouvez utiliser try et except :

    python
    try:
        age = int(input("Entrez votre âge : "))
        print("Vous avez", age, "ans")
    except ValueError:
        print("Veuillez entrer un nombre entier valide.")

    Le principe est simple :

    • le bloc try contient le code qui peut échouer,
    • le bloc except affiche un message si la conversion pose problème.

    Exemple avec float() :

    python
    try:
        poids = float(input("Entrez votre poids : "))
        print("Poids enregistré :", poids)
    except ValueError:
        print("Veuillez entrer une valeur numérique valide.")

    Pour un débutant, cette technique est déjà très utile pour rendre un programme plus robuste.

  11. Redemander la saisie tant qu’elle est invalide

    Afficher un message d’erreur est bien, mais dans beaucoup de cas, on veut aussi laisser l’utilisateur réessayer. Pour cela, on combine souvent input(), la conversion et une boucle.

    Exemple avec un entier :

    python
    while True:
        try:
            age = int(input("Entrez votre âge : "))
            break
        except ValueError:
            print("Erreur : entrez un nombre entier valide.")
    
    print("Âge enregistré :", age)

    Fonctionnement :

    1. la boucle commence,
    2. le programme demande une saisie,
    3. si la conversion réussit, break arrête la boucle,
    4. sinon, un message d’erreur s’affiche et la boucle recommence.

    Exemple avec un nombre décimal :

    python
    while True:
        try:
            prix = float(input("Entrez un prix : "))
            break
        except ValueError:
            print("Erreur : entrez un nombre valide.")
    
    print("Prix enregistré :", prix)

    Cette méthode est très courante pour sécuriser les saisies utilisateur.

  12. Nettoyer une saisie avec strip()

    Lorsque l’utilisateur tape une réponse, il peut parfois ajouter des espaces au début ou à la fin. Pour nettoyer le texte, vous pouvez utiliser strip().

    python
    prenom = input("Entrez votre prénom : ").strip()
    print("Bonjour", prenom)

    strip() supprime les espaces inutiles au début et à la fin de la chaîne.

    Exemple utile pour un choix texte :

    python
    reponse = input("Voulez-vous continuer ? oui/non : ").strip()
    print("Réponse :", reponse)

    Vous pouvez aussi combiner ce nettoyage avec une conversion en minuscules pour simplifier les comparaisons :

    python
    reponse = input("Voulez-vous continuer ? oui/non : ").strip().lower()
    print(reponse)

    Ainsi, des réponses comme Oui, OUI ou oui deviennent plus faciles à traiter.

    Pour les nombres, int() et float() s’occupent déjà de la conversion si la saisie est valide, mais la logique de nettoyage reste très utile pour le texte.

  13. Exemples pratiques complets pour débuter

    Voici plusieurs mini-programmes typiques utilisant input().

    Exemple 1 : saluer l’utilisateur

    python
    prenom = input("Quel est votre prénom ? ")
    print("Bonjour", prenom)

    Exemple 2 : calculer l’année prochaine

    python
    age = int(input("Quel âge avez-vous ? "))
    print("L'année prochaine, vous aurez", age + 1, "ans")

    Exemple 3 : calculer un total

    python
    prix = float(input("Prix d'un article : "))
    quantite = int(input("Quantité : "))
    total = prix * quantite
    print("Total à payer :", total)

    Exemple 4 : calculer une aire simple

    python
    largeur = float(input("Largeur du rectangle : "))
    hauteur = float(input("Hauteur du rectangle : "))
    aire = largeur * hauteur
    print("Aire :", aire)

    Exemple 5 : vérifier une saisie numérique

    python
    while True:
        try:
            note = float(input("Entrez une note : "))
            break
        except ValueError:
            print("Veuillez entrer un nombre valide.")
    
    print("Note enregistrée :", note)

    Ces exemples résument les usages les plus fréquents de input() dans les scripts de débutant.

  14. Bonnes pratiques à retenir

    Pour bien utiliser input() en Python, gardez ces réflexes :

    • Considérez toujours la sortie de input() comme du texte.
    • Convertissez seulement si vous avez besoin d’un nombre.
    • Utilisez int() pour les entiers.
    • Utilisez float() pour les décimaux.
    • Rédigez un message de saisie clair.
    • Prévoyez les erreurs utilisateur avec try et except.
    • Nettoyez les textes avec strip() si nécessaire.

    Avec ces quelques règles, vous éviterez la majorité des erreurs rencontrées au début de l’apprentissage.

Erreurs fréquentes & dépannage

  • Oublier que input() renvoie une chaîne : c’est l’erreur la plus fréquente. Elle provoque des problèmes lors des calculs.
  • Utiliser + sur deux saisies non converties : Python assemble les textes au lieu d’additionner des nombres.
  • Convertir un texte non numérique avec int() ou float() : cela déclenche une erreur de conversion.
  • Choisir le mauvais type : utiliser int() alors qu’une valeur décimale est attendue, ou convertir un identifiant textuel inutilement.
  • Écrire un message de saisie trop vague : l’utilisateur ne sait pas toujours quelle valeur entrer.
  • Ne pas gérer les erreurs : un programme débutant devient vite fragile si l’on suppose que l’utilisateur saisira toujours la bonne chose.

Astuces & pour aller plus loin

  • Pour apprendre, séparez d’abord la saisie et la conversion en deux lignes. C’est plus lisible.
  • Si la valeur sert à calculer, demandez-vous immédiatement si un int() ou un float() est nécessaire.
  • Pour des réponses textuelles, pensez à .strip() pour supprimer les espaces inutiles.
  • Pour des choix comme oui/non, .lower() peut simplifier les comparaisons.
  • Si votre script doit être fiable, combinez input() avec try, except et éventuellement une boucle while.
  • Testez toujours votre programme avec plusieurs saisies : correcte, vide, textuelle et numérique.

Questions fréquentes

Est-ce que input() renvoie un entier si l’utilisateur tape 42 ?

Non. input() renvoie toujours une chaîne de caractères. Si vous avez besoin d’un entier, il faut utiliser int(input(...)).

Quand faut-il utiliser int() ?

Utilisez int() quand vous attendez un nombre entier, par exemple un âge, une quantité ou un choix numérique sans décimales.

Quand faut-il utiliser float() ?

Utilisez float() quand la valeur peut contenir une partie décimale, par exemple un prix, une distance ou une température.

Pourquoi 2 + 3 devient-il 23 avec input() ?

Parce que les valeurs lues par input() sont du texte. L’opérateur + colle alors les chaînes au lieu d’effectuer une addition numérique.

Comment éviter qu’un programme plante si l’utilisateur se trompe ?

Vous pouvez entourer la conversion avec try et except ValueError, puis afficher un message d’erreur ou redemander la saisie dans une boucle.

Faut-il toujours convertir la valeur saisie ?

Non. Si la donnée est du texte ou doit rester textuelle, comme un prénom ou souvent un code postal, aucune conversion n’est nécessaire.

Conclusion

input() est une fonction indispensable pour créer des programmes Python interactifs. Son utilisation est simple en apparence, mais la règle essentielle à retenir est que la valeur saisie est toujours récupérée sous forme de texte. Dès que vous voulez faire un calcul, vous devez donc penser à la conversion avec int() ou float().

En comprenant cette différence entre chaîne de caractères et nombre, vous éviterez la plupart des erreurs classiques. Avec des messages clairs, quelques conversions bien placées et un minimum de gestion d’erreurs, vous serez capable de construire des scripts plus fiables et plus agréables à utiliser.

Une fois cette base maîtrisée, vous pourrez aller plus loin en combinant input() avec des conditions, des boucles et des fonctions pour créer de vrais petits programmes interactifs.

Commentaires· Aucun commentaire pour l'instant

Soyez le premier à réagir.

Laisser un commentaire