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.

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

                            &lt;ul class="text-gray-300 text-sm space-y-2"&gt;
                                &lt;li&gt;int() : convertit en entier&lt;/li&gt;
                                &lt;li&gt;str() : convertit en chaîne&lt;/li&gt;
                                &lt;li&gt;float() : convertit en décimal&lt;/li&gt;
                                &lt;li&gt;bool() : convertit en booléen&lt;/li&gt;
                            &lt;/ul&gt;

📝 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

                            &lt;h4 class="text-white text-sm font-semibold mb-2"&gt;&lt;/h4&gt;
                            &lt;ul class="text-gray-300 text-sm space-y-1"&gt;
                                &lt;li&gt;• if condition1: - Premier niveau&lt;/li&gt;
                                &lt;li&gt;•     if condition2: - Deuxième niveau&lt;/li&gt;
                                &lt;li&gt;• Variables booléennes : True / False&lt;/li&gt;
                                &lt;li&gt;• Indentation = 4 espaces par niveau&lt;/li&gt;
                            &lt;/ul&gt;

Opérateurs logiques :

python

                            &lt;h4 class="text-white text-sm font-semibold mb-2"&gt;&lt;/h4&gt;
                            &lt;ul class="text-gray-300 text-sm space-y-1"&gt;
                                &lt;li&gt;• and : ET logique&lt;/li&gt;
                                &lt;li&gt;• or : OU logique&lt;/li&gt;
                                &lt;li&gt;• not : NON logique&lt;/li&gt;
                                &lt;li&gt;• >=, <=, ==, != : Comparaisons&lt;/li&gt;
                            &lt;/ul&gt;

📝 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

                            &lt;h5 class="font-semibold text-white mb-3"&gt;&lt;/h5&gt;
                            &lt;ol class="text-gray-300 text-sm space-y-2 list-decimal list-inside"&gt;
                                &lt;li&gt;Testez les 3 cas différents proposés dans l'étape 1&lt;/li&gt;
                                &lt;li&gt;Ajoutez une condition pour l'âge minimum du permis (exemple: >= 16 pour conduite accompagnée)&lt;/li&gt;
                                &lt;li&gt;Créez une variable controle_technique et ajoutez-la aux vérifications&lt;/li&gt;
                                &lt;li&gt;Modifiez le seuil de carburant minimum (actuellement 10 litres)&lt;/li&gt;
                                &lt;li&gt;Ajoutez un message personnalisé selon l'âge (18-25 ans: "Jeune conducteur")&lt;/li&gt;
                            &lt;/ol&gt;

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.