Algorithmique et Programmation • Seconde

Variables et Types
10 Exercices Corrigés

Concepts & Exercices
variable = valeur
Affectation d'une variable
Entiers (int)
age = 25
Nombres entiers positifs ou négatifs
Flottants (float)
prix = 19.99
Nombres décimaux
Chaînes (str)
nom = "Alice"
Séquences de caractères
Booléens (bool)
valide = True
True ou False
🎯
Variable : Nommage d'une zone mémoire pour stocker une valeur.
📏
Type dynamique : Python déduit automatiquement le type d'une variable.
📐
Convention : Utiliser des noms explicites et suivre la convention snake_case.
📝
Immutabilité : Les variables peuvent changer de valeur mais pas de type (sauf conversion).
💡
Conseil : Toujours utiliser des noms de variables explicites
🔍
Attention : Respecter la casse (prenom != Prenom)
Astuce : Utiliser type() pour vérifier le type d'une variable
📋
Méthode : Toujours commenter son code pour expliquer les variables
Exercice 1
Déclarez une variable age contenant votre âge, une variable nom contenant votre prénom et affichez-les.
Exercice 2
Créez une variable prix_initial de 100.0€ et une variable taux_reduction de 0.2. Calculez le prix final après réduction.
Exercice 3
Soit a = 15 et b = 4. Calculez a//b (division entière) et a%b (modulo). Expliquez la différence.
Exercice 4
Convertissez la chaîne "42" en entier, puis en flottant. Affichez les types de chaque variable.
Exercice 5
Créez une variable phrase contenant "Bonjour", concaténez-la avec une variable nom contenant votre prénom.
Exercice 6
Créez une variable resultat contenant l'expression booléenne (5 > 3) and (2 < 4). Que vaut resultat ?
Exercice 7
Échangez les valeurs de deux variables a = 10 et b = 20 sans utiliser de variable temporaire.
Exercice 8
Soit note1 = 15, note2 = 12, note3 = 18. Calculez la moyenne et déterminez si elle est supérieure à 14.
Exercice 9
Créez une variable est_majeur de type booléen qui vaut True si age >= 18, False sinon.
Exercice 10
Soit longueur = 10.5 et largeur = 7.2. Calculez le périmètre et l'aire d'un rectangle.
Corrigé : Exercices 1 à 5
1 Variables nom et age
Définition d'une variable :

Variable : Un espace mémoire qui contient une valeur. En Python, une variable est créée lorsqu'on lui attribue une valeur.

Étape 1 : Déclaration des variables

On affecte des valeurs aux variables nom et age

nom = "Alice"
age = 16
Étape 2 : Affichage des variables

On utilise la fonction print() pour afficher les valeurs

print("Nom:", nom)
print("Age:", age)
Étape 3 : Résultat de l'exécution

Sortie attendue :

Nom: Alice
Age: 16
Code complet :
nom = "Alice"
age = 16
print("Nom:", nom)
print("Age:", age)
Règles appliquées :

Affectation : Utilisation de l'opérateur = pour affecter une valeur à une variable

Nommage : Utilisation de noms explicites et en minuscules avec underscore

Types : Chaîne de caractères (str) pour le nom, entier (int) pour l'âge

2 Calcul du prix final
Types de données numériques :

Float : Type de données pour les nombres décimaux. Exemple : 100.0, 0.2, 80.0

Étape 1 : Déclaration des variables

On initialise les variables avec les valeurs données

prix_initial = 100.0
taux_reduction = 0.2
Étape 2 : Calcul du prix final

On applique la formule : prix_final = prix_initial * (1 - taux_reduction)

prix_final = prix_initial * (1 - taux_reduction)
Étape 3 : Affichage du résultat

On affiche le prix final

print("Prix final:", prix_final, "€")
Code complet :
prix_initial = 100.0
taux_reduction = 0.2
prix_final = prix_initial * (1 - taux_reduction)
print("Prix final:", prix_final, "€")
Étape 4 : Résultat de l'exécution

Sortie attendue :

Prix final: 80.0 €
Règles appliquées :

Opérations : Multiplication (*) et soustraction (-)

Calcul : Prix final = Prix initial × (1 - taux de réduction)

Types : Utilisation de float pour représenter des valeurs monétaires

3 Division entière et modulo
Opérateurs spéciaux :

Division entière (//) : Renvoie la partie entière du quotient.

Modulo (%) : Renvoie le reste de la division euclidienne.

Étape 1 : Initialisation des variables

On affecte les valeurs aux variables a et b

a = 15
b = 4
Étape 2 : Calcul de la division entière

a // b donne la partie entière du quotient

division_entiere = a // b
print("Division entière:", division_entiere)
Étape 3 : Calcul du modulo

a % b donne le reste de la division

reste = a % b
print("Reste:", reste)
Étape 4 : Explication de la différence

Division entière: 15 ÷ 4 = 3 (quotient entier)

Modulo: 15 % 4 = 3 (reste de la division)

Verification: 3 × 4 + 3 = 12 + 3 = 15 ✓

Code complet :
a = 15
b = 4
division_entiere = a // b
reste = a % b
print("Division entière:", division_entiere)
print("Reste:", reste)
print("Vérification: ", division_entiere, "×", b, "+", reste, "=", division_entiere*b + reste)
Règles appliquées :

Division entière : Opérateur //, renvoie le quotient entier

Modulo : Opérateur %, renvoie le reste

Relation : a = (a//b) × b + (a%b)

4 Conversion de types
Conversion de types :

int() : Convertit une valeur en entier.

float() : Convertit une valeur en nombre décimal.

type() : Renvoie le type d'une variable.

Étape 1 : Initialisation de la chaîne

On part d'une chaîne de caractères

chaine_nombre = "42"
Étape 2 : Conversion en entier

On convertit la chaîne en entier

nombre_entier = int(chaine_nombre)
Étape 3 : Conversion en flottant

On convertit l'entier en flottant

nombre_flottant = float(nombre_entier)
Étape 4 : Affichage des types

On vérifie les types de chaque variable

print("Type original:", type(chaine_nombre))
print("Type entier:", type(nombre_entier))
print("Type flottant:", type(nombre_flottant))
Code complet :
chaine_nombre = "42"
nombre_entier = int(chaine_nombre)
nombre_flottant = float(nombre_entier)

print("Valeur originale:", chaine_nombre, "- Type:", type(chaine_nombre))
print("Valeur entière:", nombre_entier, "- Type:", type(nombre_entier))
print("Valeur flottante:", nombre_flottant, "- Type:", type(nombre_flottant))
Étape 5 : Résultat de l'exécution

Sortie attendue :

Valeur originale: 42 - Type: <class 'str'>
Valeur entière: 42 - Type: <class 'int'>
Valeur flottante: 42.0 - Type: <class 'float'>
Règles appliquées :

Conversion : int(), float() pour convertir entre types

Vérification : type() pour connaître le type d'une variable

Chaînes numériques : Seulement les chaînes représentant des nombres peuvent être converties

5 Concaténation de chaînes
Chaînes de caractères :

Concaténation : Combinaison de deux chaînes avec l'opérateur +.

Étape 1 : Initialisation des variables

On crée les variables phrase et nom

phrase = "Bonjour"
nom = "Alice"
Étape 2 : Concaténation simple

On combine les deux chaînes avec un espace

resultat = phrase + " " + nom
Étape 3 : Affichage du résultat

On affiche la chaîne concaténée

print(resultat)
Étape 4 : Autres méthodes de concaténation

Formatage de chaîne avec f-string

resultat_fstring = f"{phrase} {nom}"
print(resultat_fstring)
Code complet :
phrase = "Bonjour"
nom = "Alice"

# Méthode 1: concaténation avec +
resultat1 = phrase + " " + nom
print("Méthode 1:", resultat1)

# Méthode 2: f-string (recommandée)
resultat2 = f"{phrase} {nom}"
print("Méthode 2:", resultat2)
Étape 5 : Résultat de l'exécution

Sortie attendue :

Méthode 1: Bonjour Alice
Méthode 2: Bonjour Alice
Règles appliquées :

Concaténation : Utilisation de l'opérateur + entre chaînes

Espaces : Inclure explicitement les espaces dans la concaténation

f-strings : Méthode moderne et lisible pour formater les chaînes

Corrigé : Exercices 6 à 10
6 Expressions booléennes
Booléens :

Type bool : Valeur logique pouvant être True (vrai) ou False (faux).

Opérateurs logiques : and, or, not

Étape 1 : Expression booléenne

On évalue l'expression (5 > 3) and (2 < 4)

resultat = (5 > 3) and (2 < 4)
Étape 2 : Évaluation des comparaisons

(5 > 3) est True

(2 < 4) est True

Étape 3 : Application de l'opérateur and

True and True = True

Étape 4 : Affichage du résultat

On affiche la valeur de la variable resultat

print("Résultat:", resultat)
Code complet :
# Expression booléenne
resultat = (5 > 3) and (2 < 4)
print("Résultat:", resultat)

# Vérification étape par étape
comparaison1 = (5 > 3)  # True
comparaison2 = (2 < 4)  # True
print(f"(5 > 3) = {comparaison1}")
print(f"(2 < 4) = {comparaison2}")
print(f"{comparaison1} and {comparaison2} = {resultat}")
Étape 5 : Table de vérité pour AND
True and True = True
True and False = False
False and True = False
False and False = False
Règles appliquées :

Comparaisons : >, <, ==, !=, >=, <= renvoient des booléens

AND : Renvoie True seulement si les deux opérandes sont True

Booléens : True ou False, sensibles à la casse

7 Échange de variables
Affectation multiple :

Affectation simultanée : Python permet d'échanger des variables sans variable temporaire.

Étape 1 : Initialisation des variables

On crée les variables a et b avec les valeurs demandées

a = 10
b = 20
Étape 2 : Affichage avant échange

On vérifie les valeurs initiales

print(f"Avant échange: a = {a}, b = {b}")
Étape 3 : Échange sans variable temporaire

Python permet l'affectation multiple

a, b = b, a
Étape 4 : Affichage après échange

On vérifie que les valeurs ont été échangées

print(f"Après échange: a = {a}, b = {b}")
Code complet :
a = 10
b = 20
print(f"Avant échange: a = {a}, b = {b}")

# Échange des variables
a, b = b, a

print(f"Après échange: a = {a}, b = {b}")
Étape 5 : Autres méthodes d'échange

Alternative avec opérations arithmétiques (pour entiers uniquement)

# Méthode arithmétique (uniquement pour les nombres)
a = a + b  # a = 10 + 20 = 30
b = a - b  # b = 30 - 20 = 10
a = a - b  # a = 30 - 10 = 20
Règles appliquées :

Affectation multiple : a, b = b, a échange les valeurs en une seule instruction

Efficient : Pas besoin de variable temporaire en Python

Universel : Fonctionne avec n'importe quel type de variable

8 Calcul de moyenne
Opérations arithmétiques :

Addition (+) : Somme de plusieurs valeurs.

Division (/) : Résultat sous forme de flottant.

Étape 1 : Initialisation des notes

On affecte les valeurs aux variables note1, note2, note3

note1 = 15
note2 = 12
note3 = 18
Étape 2 : Calcul de la moyenne

On applique la formule de la moyenne

moyenne = (note1 + note2 + note3) / 3
Étape 3 : Comparaison avec la moyenne de référence

On vérifie si la moyenne est supérieure à 14

est_superieure_a_14 = moyenne > 14
Étape 4 : Affichage des résultats

On affiche la moyenne et le résultat de la comparaison

print(f"Moyenne: {moyenne}")
print(f"Moyenne supérieure à 14: {est_superieure_a_14}")
Code complet :
note1 = 15
note2 = 12
note3 = 18

moyenne = (note1 + note2 + note3) / 3
est_superieure_a_14 = moyenne > 14

print(f"Notes: {note1}, {note2}, {note3}")
print(f"Moyenne: {moyenne}")
print(f"Moyenne supérieure à 14: {est_superieure_a_14}")
Étape 5 : Calcul détaillé

Moyenne = (15 + 12 + 18) / 3 = 45 / 3 = 15.0

15.0 > 14 → True

Règles appliquées :

Moyenne : Somme des valeurs divisée par le nombre de valeurs

Division : Toujours donne un float même si le résultat est entier

Comparaison : Renvoie un booléen (True/False)

9 Variable booléenne conditionnelle
Expressions conditionnelles :

Comparaison : age >= 18 renvoie True si age est supérieur ou égal à 18.

Étape 1 : Initialisation de la variable age

On affecte une valeur à la variable age

age = 16  # Exemple avec 16 ans
Étape 2 : Création de la variable booléenne

On évalue l'expression conditionnelle

est_majeur = age >= 18
Étape 3 : Affichage du résultat

On affiche la valeur de la variable booléenne

print(f"Âge: {age}")
print(f"Majeur: {est_majeur}")
Étape 4 : Test avec différents âges

On peut tester avec plusieurs valeurs d'âge

ages_tests = [15, 17, 18, 19, 25]
for test_age in ages_tests:
    est_majeur_test = test_age >= 18
    print(f"Âge: {test_age}, Majeur: {est_majeur_test}")
Code complet :
age = 16
est_majeur = age >= 18

print(f"Âge: {age}")
print(f"Majeur: {est_majeur}")

# Tests supplémentaires
ages_tests = [15, 17, 18, 19, 25]
print("\nTests avec différents âges:")
for test_age in ages_tests:
    est_majeur_test = test_age >= 18
    print(f"Âge: {test_age}, Majeur: {est_majeur_test}")
Règles appliquées :

Comparaison : >=, <=, >, <, ==, != renvoient des booléens

Variable booléenne : Stocke le résultat d'une expression logique

Condition : age >= 18 vérifie si l'âge est supérieur ou égal à 18

10 Périmètre et aire d'un rectangle
Formules géométriques :

Périmètre : 2 × (longueur + largeur)

Aire : longueur × largeur

Étape 1 : Initialisation des dimensions

On affecte les valeurs aux variables longueur et largeur

longueur = 10.5
largeur = 7.2
Étape 2 : Calcul du périmètre

On applique la formule du périmètre

perimetre = 2 * (longueur + largeur)
Étape 3 : Calcul de l'aire

On applique la formule de l'aire

aire = longueur * largeur
Étape 4 : Affichage des résultats

On affiche le périmètre et l'aire

print(f"Périmètre: {perimetre}")
print(f"Aire: {aire}")
Étape 5 : Calculs détaillés

Périmètre = 2 × (10.5 + 7.2) = 2 × 17.7 = 35.4

Aire = 10.5 × 7.2 = 75.6

Code complet :
longueur = 10.5
largeur = 7.2

perimetre = 2 * (longueur + largeur)
aire = longueur * largeur

print(f"Dimensions: {longueur} × {largeur}")
print(f"Périmètre: {perimetre}")
print(f"Aire: {aire}")

# Avec unités
print(f"Périmètre: {perimetre} unités")
print(f"Aire: {aire} unités²")
Règles appliquées :

Périmètre : 2 × (longueur + largeur)

Aire : longueur × largeur

Types : Utilisation de float pour des mesures précises

Variables et types Introduction à Python