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.

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
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 :
pythonnom = 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 variablenomcontient le texteLina.Il faut bien retenir que
input()ne « devine » pas le type attendu. Même si l’utilisateur tape25, 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().Première utilisation : demander un texte


Le cas le plus simple consiste à demander une information textuelle. Dans ce cas, aucune conversion n’est nécessaire.
pythonville = 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 :
pythoncouleur = 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.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 :
pythonage = input("Quel âge avez-vous ? ") print(age)Si l’utilisateur entre
18, la variableagecontient le texte"18", et non le nombre18.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 :
pythonage = 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
agen’est pas encore un nombre.Il faut donc convertir la saisie avant de calculer.
Convertir une saisie en entier avec int()

Quand vous attendez un nombre entier, vous pouvez convertir la saisie avec
int().pythonage = int(input("Quel âge avez-vous ? ")) print(age + 1)Cette fois, si l’utilisateur saisit
18, Python transforme le texte"18"en entier18. Le calculage + 1devient alors possible et le résultat affiché sera19.Cette écriture est très fréquente en Python débutant :
pythonvariable = int(input("Message"))Elle combine deux étapes :
- demander une saisie avec
input(), - convertir cette saisie en entier avec
int().
Vous pouvez aussi écrire la conversion en deux lignes pour mieux comprendre ce qui se passe :
pythonsaisie = 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.
- demander une saisie avec
Convertir une saisie en nombre décimal avec float()
Si vous attendez un nombre avec une partie décimale, utilisez
float().pythontaille = 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 :
pythonprix = float(input("Quel est le prix du produit ? ")) quantite = int(input("Quelle quantité voulez-vous ? ")) total = prix * quantite print("Total :", total)Ici,
prixest un nombre décimal etquantiteun 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.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
pythoncode_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
pythonnb_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
pythonnote = 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.
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 :
pythonnombre = int(input("Entrez un nombre entier : ")) carre = nombre * nombre print("Le carré est :", carre)Exemple avec deux valeurs :
pythona = 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 :
pythonnote1 = 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.
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 :
pythona = input("Entrez un premier nombre : ") b = input("Entrez un deuxième nombre : ") print(a + b)Si l’utilisateur saisit
2puis3, le résultat affiché sera23, pas5. Pourquoi ? Parce queaetbsont des chaînes de caractères. Python colle les textes l’un à la suite de l’autre.Pour obtenir une addition, il faut convertir :
pythona = int(input("Entrez un premier nombre : ")) b = int(input("Entrez un deuxième nombre : ")) print(a + b)Cette fois, avec
2et3, le résultat sera bien5.Ce point est fondamental pour comprendre le comportement de
input().É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 :
pythonx = input("Valeur : ")et
pythonx = 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 :
pythonage = 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.
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 :
pythonage = 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
tryetexcept:pythontry: 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
trycontient le code qui peut échouer, - le bloc
exceptaffiche un message si la conversion pose problème.
Exemple avec
float():pythontry: 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.
- le bloc
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 :
pythonwhile True: try: age = int(input("Entrez votre âge : ")) break except ValueError: print("Erreur : entrez un nombre entier valide.") print("Âge enregistré :", age)Fonctionnement :
- la boucle commence,
- le programme demande une saisie,
- si la conversion réussit,
breakarrête la boucle, - sinon, un message d’erreur s’affiche et la boucle recommence.
Exemple avec un nombre décimal :
pythonwhile 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.
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().pythonprenom = 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 :
pythonreponse = 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 :
pythonreponse = input("Voulez-vous continuer ? oui/non : ").strip().lower() print(reponse)Ainsi, des réponses comme
Oui,OUIououideviennent plus faciles à traiter.Pour les nombres,
int()etfloat()s’occupent déjà de la conversion si la saisie est valide, mais la logique de nettoyage reste très utile pour le texte.Exemples pratiques complets pour débuter
Voici plusieurs mini-programmes typiques utilisant
input().Exemple 1 : saluer l’utilisateur
pythonprenom = input("Quel est votre prénom ? ") print("Bonjour", prenom)Exemple 2 : calculer l’année prochaine
pythonage = int(input("Quel âge avez-vous ? ")) print("L'année prochaine, vous aurez", age + 1, "ans")Exemple 3 : calculer un total
pythonprix = float(input("Prix d'un article : ")) quantite = int(input("Quantité : ")) total = prix * quantite print("Total à payer :", total)Exemple 4 : calculer une aire simple
pythonlargeur = 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
pythonwhile 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.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
tryetexcept. - 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.
- Considérez toujours la sortie de
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()oufloat(): 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 unfloat()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()avectry,exceptet éventuellement une bouclewhile. - 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.