Types et Variables
Maîtrisez les types de données fondamentaux en Python avec des exercices progressifs et des projets pratiques pour débuter en programmation.
- Types de base
- Conversions
- Exercices guidés
1 Découverte des types de base
🎯 Objectifs
- Identifier les différents types de données en Python (int, str, float, bool)
- Utiliser la fonction `type()` pour vérifier le type d'une variable
- Comprendre comment Python assigne automatiquement les types
📚 Technique et référence
Référence : Types de données Python - adnprofessor.tech
Les types de base en Python :
python
<ul class="text-gray-300 text-sm space-y-2">
<li>int : nombres entiers (ex: 42, -5)</li>
<li>str : chaînes de caractères (ex: "Hello", 'Python')</li>
<li>float : nombres décimaux (ex: 3.14, -2.5)</li>
<li>bool : booléens (True, False)</li>
</ul>
📝 Instructions
Étape 1 : Créez 4 variables avec des valeurs différentes
python
# Créez ces variables :
age = 25
nom = "Alice"
taille = 1.75
est_etudiant = True
age = 25 nom = "Alice" taille = 1.75 est_etudiant = True
Étape 2 : Affichez le type de chaque variable
python
# Utilisez type() pour chaque variable
print("Type de age:", type(age))
# Complétez pour les 3 autres variables
print("Type de nom:", type(nom))
print("Type de taille:", type(taille))
print("Type de est_etudiant:", type(est_etudiant))
print("Type de age:", type(age)) print("Type de nom:", type(nom)) print("Type de taille:", type(taille)) print("Type de est_etudiant:", type(est_etudiant))
Étape 3 : Affichez les variables avec leurs types dans une phrase
python
# Exemple pour la première :
print(f"La variable 'age' contient {age} et est de type {type(age).__name__}")
print(f"La variable 'nom' contient {nom} et est de type {type(nom).__name__}")
print(f"La variable 'taille' contient {taille} et est de type {type(taille).__name__}")
print(f"La variable 'est_etudiant' contient {est_etudiant} et est de type {type(est_etudiant).__name__}")
print(f"La variable 'age' contient {age} et est de type {type(age).__name__}") print(f"La variable 'nom' contient {nom} et est de type {type(nom).__name__}") print(f"La variable 'taille' contient {taille} et est de type {type(taille).__name__}") print(f"La variable 'est_etudiant' contient {est_etudiant} et est de type {type(est_etudiant).__name__}")
✅ Validation
Exécutez votre code et vérifiez que vous obtenez :
- <class 'int'> pour age
- <class 'str'> pour nom
- <class 'float'> pour taille
- <class 'bool'> pour est_etudiant
💡 Aide disponible : Tapez "aide1" si vous avez des difficultés !
2 Conversion et manipulation de types
🎯 Objectifs
- Effectuer des conversions de types (casting)
- Comprendre les erreurs de conversion possibles
- Manipuler différents types dans des opérations
📚 Technique et référence
Référence : Conversion de types - adnprofessor.tech
Fonctions de conversion :
python
<ul class="text-gray-300 text-sm space-y-2">
<li>int() : convertit en entier</li>
<li>str() : convertit en chaîne</li>
<li>float() : convertit en décimal</li>
<li>bool() : convertit en booléen</li>
</ul>
📝 Instructions
Étape 1 : Créez des variables et convertissez-les
python
# Variables de départ
nombre_texte = "123"
prix = 45.99
reponse = 1
# Conversions à faire :
nombre_entier = int(nombre_texte)
prix_entier = int(prix)
reponse_bool = bool(reponse)
# Affichage des résultats
print(f"nombre_entier: {nombre_entier} (type: {type(nombre_entier).__name__})")
print(f"prix_entier: {prix_entier} (type: {type(prix_entier).__name__})")
print(f"reponse_bool: {reponse_bool} (type: {type(reponse_bool).__name__})")
# Variables de départ nombre_texte = "123" prix = 45.99 reponse = 1 # Conversions à faire : nombre_entier = int(nombre_texte) prix_entier = int(prix) reponse_bool = bool(reponse) # Affichage des résultats print(f"nombre_entier: {nombre_entier} (type: {type(nombre_entier).__name__})") print(f"prix_entier: {prix_entier} (type: {type(prix_entier).__name__})") print(f"reponse_bool: {reponse_bool} (type: {type(reponse_bool).__name__})")
Étape 2 : Testez des opérations entre types différents
python
# Calculez et affichez :
age_str = "20"
age_int = int(age_str)
dans_10_ans = age_int + 10
print(f"Age actuel : {age_str} (type: {type(age_str).__name__})")
print(f"Dans 10 ans : {dans_10_ans} (type: {type(dans_10_ans).__name__})")
# Calculez et affichez : age_str = "20" age_int = int(age_str) dans_10_ans = age_int + 10 print(f"Age actuel : {age_str} (type: {type(age_str).__name__})") print(f"Dans 10 ans : {dans_10_ans} (type: {type(dans_10_ans).__name__})")
Étape 3 : Gérez une conversion problématique
python
# Testez cette conversion et expliquez pourquoi elle pose problème :
texte_invalide = "Hello"
try:
nombre = int(texte_invalide)
print(f"Conversion réussie : {nombre}")
except ValueError as e:
print(f"Erreur de conversion : {e}")
print(f"On ne peut pas convertir '{texte_invalide}' en nombre")
# Testez cette conversion et expliquez pourquoi elle pose problème : texte_invalide = "Hello" try: nombre = int(texte_invalide) print(f"Conversion réussie : {nombre}") except ValueError as e: print(f"Erreur de conversion : {e}") print(f"On ne peut pas convertir '{texte_invalide}' en nombre")
✅ Validation
Votre programme doit afficher :
- Les conversions réussies avec leurs nouveaux types
- Le calcul "dans 10 ans" = 30
- Un message d'erreur explicatif pour la conversion impossible
🎯 Réponse attendue : Expliquez en 2-3 phrases pourquoi on ne peut pas convertir "Hello" en entier.
3 Opérations avec les types
🎯 Objectifs
- Effectuer des calculs avec différents types numériques
- Comprendre la concaténation de chaînes
- Utiliser les opérateurs logiques avec les booléens
📝 Instructions
Créez une calculatrice simple
python
# Calculatrice avec types mixtes
nombre1 = 10 # int
nombre2 = 3.5 # float
nombre3 = "25" # str (à convertir)
# Opérations à effectuer :
addition = nombre1 + nombre2
soustraction = nombre1 - int(nombre3)
multiplication = nombre2 * float(nombre3)
division = nombre1 / nombre2
# Affichage des résultats
print(f"Addition (int + float): {addition} - Type: {type(addition).__name__}")
print(f"Soustraction: {soustraction} - Type: {type(soustraction).__name__}")
print(f"Multiplication: {multiplication} - Type: {type(multiplication).__name__}")
print(f"Division: {division} - Type: {type(division).__name__}")
# Calculatrice avec types mixtes nombre1 = 10 # int nombre2 = 3.5 # float nombre3 = "25" # str (à convertir) # Opérations à effectuer : addition = nombre1 + nombre2 soustraction = nombre1 - int(nombre3) multiplication = nombre2 * float(nombre3) division = nombre1 / nombre2 # Affichage des résultats print(f"Addition (int + float): {addition} - Type: {type(addition).__name__}") print(f"Soustraction: {soustraction} - Type: {type(soustraction).__name__}") print(f"Multiplication: {multiplication} - Type: {type(multiplication).__name__}") print(f"Division: {division} - Type: {type(division).__name__}")
Manipulation de chaînes et concaténation
python
# Concaténation et formatage
prenom = "Marie"
nom = "Dupont"
age = 28
salaire = 35000.50
# Différentes méthodes de concaténation :
nom_complet = prenom + " " + nom
presentation1 = nom_complet + " a " + str(age) + " ans"
presentation2 = f"{prenom} {nom} gagne {salaire}€ par an"
print("Nom complet:", nom_complet)
print("Présentation 1:", presentation1)
print("Présentation 2:", presentation2)
# Répétition de chaînes
separation = "-" * 30
print(separation)
# Concaténation et formatage prenom = "Marie" nom = "Dupont" age = 28 salaire = 35000.50 # Différentes méthodes de concaténation : nom_complet = prenom + " " + nom presentation1 = nom_complet + " a " + str(age) + " ans" presentation2 = f"{prenom} {nom} gagne {salaire}€ par an" print("Nom complet:", nom_complet) print("Présentation 1:", presentation1) print("Présentation 2:", presentation2) # Répétition de chaînes separation = "-" * 30 print(separation)
4 Conditions et comparaisons avec les types
📝 Validateur d'informations
Créez un système de validation
python
# Système de validation d'entrées utilisateur
nom_utilisateur = input("Entrez votre nom: ")
age_str = input("Entrez votre âge: ")
email = input("Entrez votre email: ")
# Validations
if len(nom_utilisateur) > 0:
print("✅ Nom valide")
else:
print("❌ Le nom ne peut pas être vide")
# Validation de l'âge
try:
age = int(age_str)
if 0 <= age <= 120:
print(f"✅ Âge valide: {age} ans")
if age >= 18:
print("🔞 Utilisateur majeur")
else:
print("👶 Utilisateur mineur")
else:
print("❌ Âge invalide (doit être entre 0 et 120)")
except ValueError:
print("❌ L'âge doit être un nombre")
# Validation email simplifiée
if "@" in email and "." in email:
print("✅ Email valide")
else:
print("❌ Format d'email invalide")
# Système de validation d'entrées utilisateur nom_utilisateur = input("Entrez votre nom: ") age_str = input("Entrez votre âge: ") email = input("Entrez votre email: ") # Validations if len(nom_utilisateur) > 0: print("✅ Nom valide") else: print("❌ Le nom ne peut pas être vide") # Validation de l'âge try: age = int(age_str) if 0 <= age <= 120: print(f"✅ Âge valide: {age} ans") if age >= 18: print("🔞 Utilisateur majeur") else: print("👶 Utilisateur mineur") else: print("❌ Âge invalide (doit être entre 0 et 120)") except ValueError: print("❌ L'âge doit être un nombre") # Validation email simplifiée if "@" in email and "." in email: print("✅ Email valide") else: print("❌ Format d'email invalide")
5 Conditions imbriquées et logique de décision
🎯 Objectifs
- Maîtriser les structures conditionnelles imbriquées (if dans if)
- Utiliser les variables booléennes pour des décisions complexes
- Créer une logique de décision à plusieurs niveaux
- Comprendre l'ordre d'évaluation des conditions
📚 Technique et référence
Référence : Conditions imbriquées Python - adnprofessor.tech
Structure des conditions :
python
<h4 class="text-white text-sm font-semibold mb-2"></h4>
<ul class="text-gray-300 text-sm space-y-1">
<li>• if condition1: - Premier niveau</li>
<li>• if condition2: - Deuxième niveau</li>
<li>• Variables booléennes : True / False</li>
<li>• Indentation = 4 espaces par niveau</li>
</ul>
Opérateurs logiques :
python
<h4 class="text-white text-sm font-semibold mb-2"></h4>
<ul class="text-gray-300 text-sm space-y-1">
<li>• and : ET logique</li>
<li>• or : OU logique</li>
<li>• not : NON logique</li>
<li>• >=, <=, ==, != : Comparaisons</li>
</ul>
📝 Instructions
Étape 1 : Définissez les variables du système
python
# Système de vérification pour la conduite
# Variables à définir :
age_person = 20 # Âge de la personne
permis_conduire = True # A le permis ou non
voiture_clio = False # Possède une voiture
# Testez avec différentes valeurs :
# Cas 1: age_person = 16, permis_conduire = False, voiture_clio = False
# Cas 2: age_person = 19, permis_conduire = True, voiture_clio = True
# Cas 3: age_person = 25, permis_conduire = True, voiture_clio = False
# Système de vérification pour la conduite # Variables à définir : age_person = 20 # Âge de la personne permis_conduire = True # A le permis ou non voiture_clio = False # Possède une voiture # Testez avec différentes valeurs : # Cas 1: age_person = 16, permis_conduire = False, voiture_clio = False # Cas 2: age_person = 19, permis_conduire = True, voiture_clio = True # Cas 3: age_person = 25, permis_conduire = True, voiture_clio = False
Étape 2 : Créez la logique de décision complète
python
# Structure conditionnelle imbriquée
if age_person >= 18:
print("Majeur :")
if permis_conduire:
print("✅ A le permis")
if voiture_clio:
print("🚗 Peut conduire")
else:
print("🚌 Transport en commun")
else:
print("❌ Pas de permis")
else:
print("Mineur - pas de conduite")
# Structure conditionnelle imbriquée if age_person >= 18: print("Majeur :") if permis_conduire: print("✅ A le permis") if voiture_clio: print("🚗 Peut conduire") else: print("🚌 Transport en commun") else: print("❌ Pas de permis") else: print("Mineur - pas de conduite")
Étape 3 : Ajoutez plus de conditions et d'informations
python
# Version enrichie avec plus de variables
nom_personne = "Alice"
age_person = 22
permis_conduire = True
voiture_clio = True
assurance_valide = False # Nouvelle condition
carburant = 15 # Litres dans le réservoir
print(f"=== Analyse pour {nom_personne} ({age_person} ans) ===")
if age_person >= 18:
print("🎂 Personne majeure")
if permis_conduire:
print("✅ Permis de conduire valide")
if voiture_clio:
print("🚗 Véhicule disponible")
# Vérifications supplémentaires
if assurance_valide:
if carburant > 10:
print("🟢 PEUT CONDUIRE - Toutes les conditions remplies!")
else:
print("⛽ Faire le plein avant de partir")
else:
print("📋 Renouveler l'assurance avant de conduire")
else:
print("🚌 Utiliser les transports en commun")
else:
print("📚 Passer le permis de conduire")
else:
print(f"👶 Mineur ({18 - age_person} ans avant la majorité)")
# Version enrichie avec plus de variables nom_personne = "Alice" age_person = 22 permis_conduire = True voiture_clio = True assurance_valide = False # Nouvelle condition carburant = 15 # Litres dans le réservoir print(f"=== Analyse pour {nom_personne} ({age_person} ans) ===") if age_person >= 18: print("🎂 Personne majeure") if permis_conduire: print("✅ Permis de conduire valide") if voiture_clio: print("🚗 Véhicule disponible") # Vérifications supplémentaires if assurance_valide: if carburant > 10: print("🟢 PEUT CONDUIRE - Toutes les conditions remplies!") else: print("⛽ Faire le plein avant de partir") else: print("📋 Renouveler l'assurance avant de conduire") else: print("🚌 Utiliser les transports en commun") else: print("📚 Passer le permis de conduire") else: print(f"👶 Mineur ({18 - age_person} ans avant la majorité)")
Étape 4 : À vous de jouer - Modifiez et testez
Exercices de modification :
python
<h5 class="font-semibold text-white mb-3"></h5>
<ol class="text-gray-300 text-sm space-y-2 list-decimal list-inside">
<li>Testez les 3 cas différents proposés dans l'étape 1</li>
<li>Ajoutez une condition pour l'âge minimum du permis (exemple: >= 16 pour conduite accompagnée)</li>
<li>Créez une variable controle_technique et ajoutez-la aux vérifications</li>
<li>Modifiez le seuil de carburant minimum (actuellement 10 litres)</li>
<li>Ajoutez un message personnalisé selon l'âge (18-25 ans: "Jeune conducteur")</li>
</ol>
python
# Votre version modifiée - À compléter
nom_personne = "Votre nom"
age_person = 19 # Modifiez cette valeur
permis_conduire = True
voiture_clio = True
assurance_valide = True
carburant = 25
controle_technique = True # Ajoutez cette condition
# Ajoutez votre logique ici...
# Testez différents cas et observez les résultats
# Votre version modifiée - À compléter nom_personne = "Votre nom" age_person = 19 # Modifiez cette valeur permis_conduire = True voiture_clio = True assurance_valide = True carburant = 25 controle_technique = True # Ajoutez cette condition # Ajoutez votre logique ici... # Testez différents cas et observez les résultats
✅ Validation et résultats attendus
Cas de test à vérifier :
Cas 1 :
→ "Mineur - pas de conduite"
Cas 2 :
→ Messages de vérification + résultat final
Cas 3 :
→ "Transport en commun"
Points clés à retenir :
- L'indentation est cruciale (4 espaces par niveau)
- Chaque if peut avoir son else
- Les conditions s'évaluent de haut en bas
- Variables booléennes : True/False
🎯 Défi bonus :
Réécrivez la même logique en utilisant les opérateurs and et or au lieu des conditions imbriquées. Exemple : if age >= 18 and permis_conduire and voiture_clio:
🚀 Projet Final : Calculatrice Interactive
Créez une calculatrice complète
Utilisez tous les concepts appris pour créer une calculatrice interactive qui gère les différents types de données et les erreurs.
python
# Calculatrice Interactive - Projet Final
def
calculatrice():
print("🔢 Calculatrice Python - Projet Débutant")
print("=" * 40)
while True:
print("\nOpérations disponibles:")
print("1. Addition (+)")
print("2. Soustraction (-)")
print("3. Multiplication (*)")
print("4. Division (/)")
print("5. Quitter")
choix = input("\n👉 Choisissez une opération (1-5): ")
if choix == "5":
print("👋 Au revoir !")
break
if choix in ["1", "2", "3", "4"]:
try:
num1_str = input("Entrez le premier nombre: ")
num2_str = input("Entrez le deuxième nombre: ")
# Conversion avec gestion d'erreur
num1 = float(num1_str)
num2 = float(num2_str)
# Calcul selon le choix
if choix == "1":
resultat = num1 + num2
operation = "+"
elif choix == "2":
resultat = num1 - num2
operation = "-"
elif choix == "3":
resultat = num1 * num2
operation = "*"
elif choix == "4":
if num2 != 0:
resultat = num1 / num2
operation = "/"
else:
print("❌ Erreur: Division par zéro impossible!")
continue
# Affichage du résultat avec type
print(f"\n✅ {num1} {operation} {num2} = {resultat}")
print(f"📊 Type du résultat: {type(resultat).__name__}")
# Information sur les types utilisés
if isinstance(resultat, int):
print("🔢 Résultat entier")
elif isinstance(resultat, float):
print("💯 Résultat décimal")
except ValueError:
print("❌ Erreur: Veuillez entrer des nombres valides!")
else:
print("❌ Choix invalide! Choisissez entre 1 et 5.")
# Point d'entrée du programme
if __name__ == "__main__":
calculatrice()
# Calculatrice Interactive - Projet Final def calculatrice(): print("🔢 Calculatrice Python - Projet Débutant") print("=" * 40) while True: print("\nOpérations disponibles:") print("1. Addition (+)") print("2. Soustraction (-)") print("3. Multiplication (*)") print("4. Division (/)") print("5. Quitter") choix = input("\n👉 Choisissez une opération (1-5): ") if choix == "5": print("👋 Au revoir !") break if choix in ["1", "2", "3", "4"]: try: num1_str = input("Entrez le premier nombre: ") num2_str = input("Entrez le deuxième nombre: ") # Conversion avec gestion d'erreur num1 = float(num1_str) num2 = float(num2_str) # Calcul selon le choix if choix == "1": resultat = num1 + num2 operation = "+" elif choix == "2": resultat = num1 - num2 operation = "-" elif choix == "3": resultat = num1 * num2 operation = "*" elif choix == "4": if num2 != 0: resultat = num1 / num2 operation = "/" else: print("❌ Erreur: Division par zéro impossible!") continue # Affichage du résultat avec type print(f"\n✅ {num1} {operation} {num2} = {resultat}") print(f"📊 Type du résultat: {type(resultat).__name__}") # Information sur les types utilisés if isinstance(resultat, int): print("🔢 Résultat entier") elif isinstance(resultat, float): print("💯 Résultat décimal") except ValueError: print("❌ Erreur: Veuillez entrer des nombres valides!") else: print("❌ Choix invalide! Choisissez entre 1 et 5.") # Point d'entrée du programme if __name__ == "__main__": calculatrice()
🎯 Concepts utilisés dans ce projet :
• Types int, float, str • Conversions de types • Fonction input()
• Structures conditionnelles • Boucles while • Gestion d'erreurs try/except
• Fonctions • F-strings • isinstance()
Félicitations ! Vous maîtrisez les types Python
Vous avez appris les bases essentielles : types de données, conversions, opérations et validation. Prêt pour la suite de votre parcours Python ?
🎯 Prochaine étape
Structures de données : listes, dictionnaires
🔧 Exercices bonus
Fonctions, boucles et fichiers
🚀 Projets avancés
Vous maîtrisez les types Python
Entiers, chaînes, décimaux, booléens et conversions : les fondations sont posées. Revenez au cours pour la suite.