Skip to content

Les entrées utilisateur en Python

Guide complet sur les entrées utilisateur en Python

Section titled “Guide complet sur les entrées utilisateur en Python”

La fonction input() permet de recevoir des données de l’utilisateur pendant l’exécution d’un programme. C’est un outil essentiel pour créer des applications interactives où l’utilisateur peut fournir des informations, faire des choix ou contrôler le flux du programme.

nom = input("Entrez votre nom : ")
print(f"Bonjour {nom} !")
# Sortie interactive :
# Entrez votre nom : Riyad
# Bonjour Riyad !

Comment ça fonctionne :

  1. Le programme affiche le message entre parenthèses
  2. Le programme attend que l’utilisateur tape quelque chose
  3. L’utilisateur appuie sur Entrée
  4. La valeur saisie est retournée sous forme de chaîne de caractères (string)
reponse = input()
print(f"Vous avez saisi : {reponse}")

Note : Il est recommandé d’inclure un message pour guider l’utilisateur.

age = input("Quel est votre âge ? ")
print(type(age))
# Sortie : <class 'str'>

Important : Même si l’utilisateur tape un nombre, input() retourne toujours une chaîne !

Problème avec les opérations mathématiques

Section titled “Problème avec les opérations mathématiques”
# ❌ Erreur courante
nombre1 = input("Premier nombre : ")
nombre2 = input("Deuxième nombre : ")
resultat = nombre1 + nombre2
print(resultat)
# Si l'utilisateur tape 5 et 3
# Sortie : 53 (concaténation de chaînes, pas addition !)
age = int(input("Quel est votre âge ? "))
print(type(age))
# Sortie : <class 'int'>
# Maintenant on peut faire des calculs
dans_10_ans = age + 10
print(f"Dans 10 ans, vous aurez {dans_10_ans} ans")

Conversion en nombre décimal avec float()

Section titled “Conversion en nombre décimal avec float()”
taille = float(input("Quelle est votre taille en mètres ? "))
print(type(taille))
# Sortie : <class 'float'>
print(f"Votre taille est {taille} m")
# Si l'utilisateur tape 1.75
# Sortie : Votre taille est 1.75 m
FonctionType résultantExemple d’utilisation
int()EntierÂge, quantité, année
float()DécimalPrix, taille, poids
str()ChaîneNom, adresse (par défaut)
# ❌ Provoque une erreur si l'utilisateur tape du texte
age = int(input("Votre âge : "))
# Si l'utilisateur tape "vingt"
# Erreur : ValueError: invalid literal for int() with base 10: 'vingt'
try:
age = int(input("Votre âge : "))
print(f"Vous avez {age} ans")
except ValueError:
print("Erreur : veuillez entrer un nombre valide")
while True:
try:
age = int(input("Votre âge : "))
if age < 0:
print("L'âge ne peut pas être négatif")
continue
if age > 150:
print("Âge non réaliste")
continue
break
except ValueError:
print("Veuillez entrer un nombre entier")
print(f"Âge enregistré : {age} ans")
# Demander plusieurs valeurs séparées par des espaces
entree = input("Entrez trois nombres séparés par des espaces : ")
nombre1, nombre2, nombre3 = entree.split()
print(f"Nombres : {nombre1}, {nombre2}, {nombre3}")
# Si l'utilisateur tape "10 20 30"
# Sortie : Nombres : 10, 20, 30
# Convertir plusieurs valeurs en une seule ligne
nombres = list(map(int, input("Entrez des nombres séparés par des espaces : ").split()))
print(f"Somme : {sum(nombres)}")
# Si l'utilisateur tape "5 10 15"
# Sortie : Somme : 30
nom = input("Votre nom (appuyez sur Entrée pour 'Anonyme') : ") or "Anonyme"
print(f"Bonjour {nom}")
nom = input("Votre nom : ").strip()
print(f"Nom nettoyé : '{nom}'")
# Si l'utilisateur tape " Riyad "
# Sortie : Nom nettoyé : 'Riyad'
choix = input("Voulez-vous continuer ? (oui/non) : ").lower().strip()
if choix == "oui":
print("On continue !")
elif choix == "non":
print("Au revoir !")
else:
print("Réponse non reconnue")
print("=== MENU PRINCIPAL ===")
print("1. Nouveau jeu")
print("2. Charger une partie")
print("3. Options")
print("4. Quitter")
choix = input("Votre choix (1-4) : ")
if choix == "1":
print("Démarrage d'un nouveau jeu...")
elif choix == "2":
print("Chargement d'une partie...")
elif choix == "3":
print("Ouverture des options...")
elif choix == "4":
print("Au revoir !")
else:
print("Choix invalide")
def afficher_menu():
print("\n=== MENU ===")
print("1. Addition")
print("2. Soustraction")
print("3. Multiplication")
print("4. Division")
print("5. Quitter")
while True:
afficher_menu()
choix = input("Choisissez une opération : ").strip()
if choix == "5":
print("Au revoir !")
break
if choix not in ["1", "2", "3", "4"]:
print("Choix invalide, réessayez")
continue
try:
a = float(input("Premier nombre : "))
b = float(input("Deuxième nombre : "))
if choix == "1":
print(f"Résultat : {a + b}")
elif choix == "2":
print(f"Résultat : {a - b}")
elif choix == "3":
print(f"Résultat : {a * b}")
elif choix == "4":
if b == 0:
print("Erreur : division par zéro")
else:
print(f"Résultat : {a / b}")
except ValueError:
print("Erreur : nombres invalides")
# ✅ Bon
while True:
try:
age = int(input("Âge : "))
if age > 0:
break
print("L'âge doit être positif")
except ValueError:
print("Veuillez entrer un nombre")
# ❌ Mauvais
age = int(input("Âge : ")) # Peut planter le programme
# ✅ Bon
nom = input("Entrez votre nom complet : ")
age = int(input("Entrez votre âge (en années) : "))
# ❌ Mauvais
nom = input()
age = int(input("Âge : ")) # Pas assez précis
# ✅ Bon
nom = input("Nom : ").strip().title()
# " riyad " devient "Riyad"
# ❌ Mauvais
nom = input("Nom : ") # Garde les espaces et la casse

Cette évaluation rapide (3 minutes) va vous permettre de vérifier votre compréhension de la fonction input() et la gestion des entrées utilisateur en Python.

Instructions :

  • 🕒 Temps limité : 3 minutes
  • 🎯 Seuil de réussite : 80%
  • 💡 Les réponses seront expliquées à la fin

À vous de jouer ! 🚀



Exercice 1 : Présentation simple

Énoncé : Créez un programme qui demande le prénom, le nom et l’âge de l’utilisateur, puis affiche une phrase de présentation complète.

Exemple d’exécution :

Prénom : Riyad
Nom : Kouadio
Âge : 25
Je m'appelle Riyad Kouadio et j'ai 25 ans.
Voir la solution
prenom = input("Prénom : ").strip()
nom = input("Nom : ").strip()
age = int(input("Âge : "))
print(f"Je m'appelle {prenom} {nom} et j'ai {age} ans.")

Résultat attendu :

Prénom : Riyad
Nom : Kouadio
Âge : 25
Je m'appelle Riyad Kouadio et j'ai 25 ans.

Exercice 2 : Calculateur de surface rectangulaire

Énoncé : Demandez la longueur et la largeur d’un rectangle, puis calculez et affichez sa surface et son périmètre.

Formules :

  • Surface = longueur × largeur
  • Périmètre = 2 × (longueur + largeur)

Exemple d’exécution :

Longueur (en m) : 5
Largeur (en m) : 3
Surface : 15.0 m²
Périmètre : 16.0 m
Voir la solution
longueur = float(input("Longueur (en m) : "))
largeur = float(input("Largeur (en m) : "))
surface = longueur * largeur
perimetre = 2 * (longueur + largeur)
print(f"Surface : {surface} m²")
print(f"Périmètre : {perimetre} m")

Résultat attendu :

Longueur (en m) : 5
Largeur (en m) : 3
Surface : 15.0 m²
Périmètre : 16.0 m

Exercice 3 : Conversion de devises

Énoncé : Créez un convertisseur Euro → Dollar. Demandez un montant en euros et affichez l’équivalent en dollars (taux : 1€ = 1.10$).

Exemple d’exécution :

Montant en euros : 100
100.0€ = 110.0$
Voir la solution
TAUX_CONVERSION = 1.10
euros = float(input("Montant en euros : "))
dollars = euros * TAUX_CONVERSION
print(f"{euros}€ = {dollars}$")

Résultat attendu :

Montant en euros : 100
100.0€ = 110.0$

Exercice 4 : Calcul de remise commerciale

Énoncé : Demandez le prix d’un article et le pourcentage de remise. Calculez et affichez le montant de la remise et le prix final.

Exemple d’exécution :

Prix de l'article : 50
Pourcentage de remise : 20
Remise : 10.0€
Prix final : 40.0€
Voir la solution
prix = float(input("Prix de l'article : "))
pourcentage = float(input("Pourcentage de remise : "))
remise = prix * (pourcentage / 100)
prix_final = prix - remise
print(f"Remise : {remise}€")
print(f"Prix final : {prix_final}€")

Résultat attendu :

Prix de l'article : 50
Pourcentage de remise : 20
Remise : 10.0€
Prix final : 40.0€

Exercice 5 : Vérificateur d'année bissextile

Énoncé : Demandez une année et indiquez si elle est bissextile ou non.

Règle : Une année est bissextile si elle est divisible par 4, sauf si elle est divisible par 100 (mais si elle est divisible par 400, elle est bissextile).

Exemple d’exécution :

Entrez une année : 2024
2024 est une année bissextile.
Voir la solution
annee = int(input("Entrez une année : "))
if (annee % 4 == 0 and annee % 100 != 0) or (annee % 400 == 0):
print(f"{annee} est une année bissextile.")
else:
print(f"{annee} n'est pas une année bissextile.")

Résultat attendu :

Entrez une année : 2024
2024 est une année bissextile.

Exercice 6 : Calculateur de pourboire

Énoncé : Créez un programme qui calcule le pourboire pour un restaurant. Demandez le montant de l’addition et le pourcentage de pourboire souhaité, puis affichez le montant du pourboire et le total à payer.

Exemple d’exécution :

Montant de l'addition : 85
Pourcentage de pourboire (%) : 15
Pourboire : 12.75€
Total à payer : 97.75€
Voir la solution
addition = float(input("Montant de l'addition : "))
pourcentage = float(input("Pourcentage de pourboire (%) : "))
pourboire = addition * (pourcentage / 100)
total = addition + pourboire
print(f"Pourboire : {pourboire:.2f}€")
print(f"Total à payer : {total:.2f}€")

Résultat attendu :

Montant de l'addition : 85
Pourcentage de pourboire (%) : 15
Pourboire : 12.75€
Total à payer : 97.75€

Exercice 7 : Validation d'âge avec retry

Énoncé : Créez un programme qui demande l’âge de l’utilisateur. Si l’entrée est invalide (non numérique, négative ou supérieure à 120), redemandez jusqu’à obtenir une valeur valide.

Exemple d’exécution :

Entrez votre âge : abc
❌ Veuillez entrer un nombre valide
Entrez votre âge : -5
❌ L'âge ne peut pas être négatif
Entrez votre âge : 25
✅ Âge enregistré : 25 ans
Voir la solution
while True:
try:
age = int(input("Entrez votre âge : "))
if age < 0:
print("❌ L'âge ne peut pas être négatif")
continue
if age > 120:
print("❌ Âge non réaliste (max 120 ans)")
continue
print(f"✅ Âge enregistré : {age} ans")
break
except ValueError:
print("❌ Veuillez entrer un nombre valide")

Résultat attendu :

Entrez votre âge : abc
❌ Veuillez entrer un nombre valide
Entrez votre âge : -5
❌ L'âge ne peut pas être négatif
Entrez votre âge : 25
✅ Âge enregistré : 25 ans

Exercice 8 : Conversion Celsius/Fahrenheit bidirectionnelle

Énoncé : Créez un convertisseur de température qui demande d’abord le type de conversion souhaité (C→F ou F→C), puis effectue la conversion.

Formules :

  • Celsius → Fahrenheit : F = (C × 9/5) + 32
  • Fahrenheit → Celsius : C = (F - 32) × 5/9

Exemple d’exécution :

=== CONVERTISSEUR DE TEMPÉRATURE ===
1. Celsius → Fahrenheit
2. Fahrenheit → Celsius
Votre choix (1 ou 2) : 1
Température en Celsius : 25
25.0°C = 77.0°F
Voir la solution
print("=== CONVERTISSEUR DE TEMPÉRATURE ===")
print("1. Celsius → Fahrenheit")
print("2. Fahrenheit → Celsius")
choix = input("Votre choix (1 ou 2) : ").strip()
if choix == "1":
celsius = float(input("Température en Celsius : "))
fahrenheit = (celsius * 9/5) + 32
print(f"{celsius}°C = {fahrenheit}°F")
elif choix == "2":
fahrenheit = float(input("Température en Fahrenheit : "))
celsius = (fahrenheit - 32) * 5/9
print(f"{fahrenheit}°F = {celsius:.2f}°C")
else:
print("❌ Choix invalide")

Résultat attendu :

=== CONVERTISSEUR DE TEMPÉRATURE ===
1. Celsius → Fahrenheit
2. Fahrenheit → Celsius
Votre choix (1 ou 2) : 1
Température en Celsius : 25
25.0°C = 77.0°F

Exercice 9 : Système de notation avec commentaire

Énoncé : Créez un programme qui demande une note sur 20 et affiche une appréciation selon les critères :

  • 16-20 : Excellent
  • 14-15 : Très bien
  • 12-13 : Bien
  • 10-11 : Assez bien
  • 0-9 : Insuffisant

Exemple d’exécution :

Entrez une note sur 20 : 17
Note : 17/20
Appréciation : Excellent ✨
Voir la solution
while True:
try:
note = float(input("Entrez une note sur 20 : "))
if note < 0 or note > 20:
print("❌ La note doit être entre 0 et 20")
continue
print(f"Note : {note}/20")
if note >= 16:
print("Appréciation : Excellent ✨")
elif note >= 14:
print("Appréciation : Très bien 🎉")
elif note >= 12:
print("Appréciation : Bien 👍")
elif note >= 10:
print("Appréciation : Assez bien 🙂")
else:
print("Appréciation : Insuffisant 📚")
break
except ValueError:
print("❌ Veuillez entrer un nombre valide")

Résultat attendu :

Entrez une note sur 20 : 17
Note : 17.0/20
Appréciation : Excellent ✨

Exercice 10 : Quiz interactif

Énoncé : Créez un mini-quiz de 3 questions avec des réponses à choix multiples. Comptez le nombre de bonnes réponses et affichez le score final.

Exemple d’exécution :

=== QUIZ PYTHON ===
Question 1 : Quel est le type retourné par input() ?
a) int
b) str
c) float
Votre réponse : b
✅ Correct !
Question 2 : Comment convertir en entier ?
a) str()
b) int()
c) float()
Votre réponse : b
✅ Correct !
Question 3 : Quelle méthode supprime les espaces ?
a) .remove()
b) .delete()
c) .strip()
Votre réponse : c
✅ Correct !
=== RÉSULTAT ===
Score : 3/3
Bravo, parfait ! 🏆
Voir la solution
print("=== QUIZ PYTHON ===\n")
score = 0
total = 3
# Question 1
print("Question 1 : Quel est le type retourné par input() ?")
print("a) int")
print("b) str")
print("c) float")
reponse1 = input("Votre réponse : ").strip().lower()
if reponse1 == "b":
print("✅ Correct !\n")
score += 1
else:
print("❌ Incorrect. La bonne réponse était 'b'\n")
# Question 2
print("Question 2 : Comment convertir en entier ?")
print("a) str()")
print("b) int()")
print("c) float()")
reponse2 = input("Votre réponse : ").strip().lower()
if reponse2 == "b":
print("✅ Correct !\n")
score += 1
else:
print("❌ Incorrect. La bonne réponse était 'b'\n")
# Question 3
print("Question 3 : Quelle méthode supprime les espaces ?")
print("a) .remove()")
print("b) .delete()")
print("c) .strip()")
reponse3 = input("Votre réponse : ").strip().lower()
if reponse3 == "c":
print("✅ Correct !\n")
score += 1
else:
print("❌ Incorrect. La bonne réponse était 'c'\n")
# Résultat final
print("=== RÉSULTAT ===")
print(f"Score : {score}/{total}")
if score == total:
print("Bravo, parfait ! 🏆")
elif score >= 2:
print("Très bien ! 👏")
else:
print("Continuez à pratiquer ! 📚")

Résultat attendu :

=== QUIZ PYTHON ===
Question 1 : Quel est le type retourné par input() ?
a) int
b) str
c) float
Votre réponse : b
✅ Correct !
Question 2 : Comment convertir en entier ?
a) str()
b) int()
c) float()
Votre réponse : b
✅ Correct !
Question 3 : Quelle méthode supprime les espaces ?
a) .remove()
b) .delete()
c) .strip()
Votre réponse : c
✅ Correct !
=== RÉSULTAT ===
Score : 3/3
Bravo, parfait ! 🏆

Exercice 11 : Calculateur de temps de trajet

Énoncé : Créez un programme qui calcule le temps de trajet. Demandez la distance (en km) et la vitesse moyenne (en km/h), puis affichez le temps en heures et minutes.

Formule : Temps = Distance / Vitesse

Exemple d’exécution :

Distance (km) : 150
Vitesse moyenne (km/h) : 90
Temps de trajet : 1h 40min
Voir la solution
distance = float(input("Distance (km) : "))
vitesse = float(input("Vitesse moyenne (km/h) : "))
if vitesse <= 0:
print("❌ La vitesse doit être positive")
else:
temps_heures = distance / vitesse
heures = int(temps_heures)
minutes = int((temps_heures - heures) * 60)
print(f"Temps de trajet : {heures}h {minutes}min")

Résultat attendu :

Distance (km) : 150
Vitesse moyenne (km/h) : 90
Temps de trajet : 1h 40min

Exercice 12 : Générateur de mot de passe simple

Énoncé : Créez un programme qui génère un mot de passe simple en combinant :

  • Le prénom de l’utilisateur
  • Son année de naissance
  • Un symbole choisi parmi : !, @, #, $

Exemple d’exécution :

=== GÉNÉRATEUR DE MOT DE PASSE ===
Votre prénom : Riyad
Année de naissance : 2000
Choisissez un symbole (!, @, #, $) : @
Votre mot de passe : Riyad2000@
Voir la solution
print("=== GÉNÉRATEUR DE MOT DE PASSE ===")
prenom = input("Votre prénom : ").strip().capitalize()
annee = input("Année de naissance : ").strip()
symbole = input("Choisissez un symbole (!, @, #, $) : ").strip()
if symbole in ["!", "@", "#", "$"]:
mot_de_passe = f"{prenom}{annee}{symbole}"
print(f"Votre mot de passe : {mot_de_passe}")
else:
print("❌ Symbole invalide")

Résultat attendu :

=== GÉNÉRATEUR DE MOT DE PASSE ===
Votre prénom : Riyad
Année de naissance : 2000
Choisissez un symbole (!, @, #, $) : @
Votre mot de passe : Riyad2000@

La gestion des entrées utilisateur est essentielle pour créer des programmes interactifs. Les points clés à retenir :

  • input() retourne toujours une chaîne de caractères
  • Utilisez int(), float() pour convertir les types
  • Validez toujours les entrées avec try-except
  • Nettoyez les données avec .strip(), .lower(), etc.
  • Fournissez des messages clairs et des retours informatifs
  • Gérez les erreurs de manière élégante

Avec ces techniques et les exercices pratiques, vous pouvez créer des applications robustes et conviviales !



À propos de l'auteur

Riyad ODJOUADEExpert en cybersécurité & infrastructure

Je partage des guides techniques pratiques sur la cybersécurité, l'administration système et le développement web. Tous les contenus sont basés sur des expérimentations réelles.