Passer au contenu principal

Cours d'Initiation à la Programmation Python

Ce cours simplifié est spécialement conçu pour les débutants au lycée.

Il contient des exemples pratiques et des exercices pour faciliter l'apprentissage.

I/ Variables et Types de Données

Définition : Une variable est une boîte qui stocke une valeur en mémoire.

Types principaux :

  • int : nombre entier (42)
  • float : nombre décimal (3.14)
  • str : chaîne de caractères ("Bonjour")
  • bool : booléen (True/False)
  • list : liste ordonnée ([1, 2, 3])

Exemples détaillés :

# Nombres
age = 18                     # int
pi = 3.14159                 # float

# Texte
nom = "Alice"                # str
message = 'Bonjour le monde' # str (guillemets simples ou doubles)

# Booléen
est_majeur = True            # bool

# Liste
notes = [12, 15, 9]          # list

Voici une version enrichie et détaillée du paragraphe sur les opérations de base, spécialement adaptée pour des élèves préparant le bac :


II/ Opérations de Base

II.1/ Opérations Mathématiques

Opération Symbole Exemple Bac Résultat Remarque
Addition + 5 + 3.2 8.2 Fonctionne avec int et float
Soustraction - 10 - 4.5 5.5
Multiplication * 3 * 2.5 7.5
Division classique / 7 / 2 3.5 Toujours retourne un float
Division entière // 7 // 2 3 Troncature vers -∞
Modulo (reste) % 7 % 2 1 Utile pour la parité
Puissance ** 2 ** 3 8 x**0.5 = racine carrée

Exemple typique :

# Calculer une moyenne pondérée
notes = [12, 15, 9]
coefficients = [2, 3, 1]
total = sum(n * c for n, c in zip(notes, coefficients))
moyenne = total / sum(coefficients)
print(round(moyenne, 2))  # 13.0

Voici un QCM basé sur les notions de variables et types de base en Python, avec 4 propositions par question et une seule réponse correcte :


QCM : Variables et Types de Base en Python

Question 1

Que vaut z après ce code ?

x = 15
y = 3.14
z = x + y
  • 18
  • 18.14 (car int + float = float)
  • "15 + 3.14"
  • TypeError

Question 2

Que retourne ce code ?

a = True
b = (10 > 9)
c = a and b
  • False (si l'une des variables était fausse)
  • True (car 10 > 9 est vrai et a est vrai)
  • None
  • "True and True"

Question 3

Que vaut message après ce code ?

nom = "Alice"
message = f"Bonjour {nom}"
  • "Bonjour nom"
  • "Bonjour Alice" (f-string évalue {nom})
  • "Bonjour {nom}"
  • Erreur de syntaxe

Question 4

Que vaut longueur ici ?

nom = "Alice"
longueur = len(nom)
  • 4 (attention aux indices !)
  • 5 (5 caractères : 'A', 'l', 'i', 'c', 'e')
  • 6 (inclus le caractère nul en C)
  • 1 (compterait seulement le premier caractère)

Question 5

Que contient notes après ce code ?

notes = [12, 15, 9]
notes.append(14)
  • [12, 15, 9, [14]] (erreur : append ajoute un élément, pas une liste)
  • [12, 15, 9, 14] (append ajoute à la fin)
  • [14, 12, 15, 9] (au début : il faudrait insert(0, 14))
  • [12, 15, 9] (append ne modifie pas la liste)

Question 6

Que vaut moyenne ici ?

notes = [12, 15, 9, 14]
moyenne = sum(notes) / len(notes)
  • 12 (mauvaise division)
  • 13 (arrondi incorrect)
  • 12.5 (somme=50, 4 éléments → 50/4=12.5)
  • 50 (seule la somme sans division)

Question 7 (Bonus)

Quel est le type de z ici ?

x = 5
y = "2"
z = x * y
  • int
  • float
  • str (résulte en "52" : concaténation avec str)
  • TypeError (serait vrai si on essayait x + y)

Conseils pour le Bac :

  • Les conversions de type (int(), str()) sont souvent testées.
  • Les opérations entre types différents (ex: int * str) sont piégeuses !
  • Utilisez type(variable) pour vérifier en cas de doute.

Corrigez-vous en vérifiant avec l’interpréteur Python !

2. Opérations Textuelles

Opération Exemple Résultat Usage fréquent
Concaténation "Py" + "thon" "Python" Assembler des chaînes
Répétition "A" * 3 "AAA" Générer des motifs
Indexation "Hello"[1] 'e' Accès aux caractères
Slicing "Python"[1:4] 'yth' Extraction de sous-chaîne
Longueur len("abc") 3 Compter les caractères

Méthodes essentielles:

chaine = " Bonjour le monde "
chaine.strip()       # "Bonjour le monde" (supprime espaces)
chaine.lower()       # " bonjour le monde "
chaine.upper()       # " BONJOUR LE MONDE "
chaine.split(" ")    # ['', 'Bonjour', 'le', 'monde', '']
", ".join(["a", "b"]) # "a, b" (jointure)

3. Opérations sur les Listes

Opération Exemple Résultat Complexité
Accès L[0] Premier élément O(1)
Slicing L[1:3] Sous-liste O(k)
Ajout L.append(x) Modifie sur place O(1)
Suppression L.pop() Retire le dernier O(1)
Recherche x in L True/False O(n)
Longueur len(L) Nombre d'éléments O(1)

Cas d'étude (bac) :

# Filtrer les nombres pairs
nombres = [3, 8, 12, 5, 9]
pairs = [x for x in nombres if x % 2 == 0]  # [8, 12]

# Inverser une liste (2 méthodes)
inverse1 = liste[::-1]           # Méthode slicing
inverse2 = list(reversed(liste)) # Avec fonction

4. Comparaisons et Booléens

Opérateurs logiques :

not (5 < 3)  # True (inverse)
(5 > 3) and (2 == 2)  # True (ET logique)
(5 < 3) or (2 != 3)   # True (OU logique)

Priorités des opérations :

  1. () (parenthèses)
  2. ** (puissance)
  3. *, /, //, %
  4. +, -
  5. ==, !=, <, >, <=, >=
  6. not
  7. and
  8. or

Exemple complet :

# Vérifier si un nombre est dans un intervalle
x = 15
if 10 <= x <= 20 and x != 13:
    print("Valide")
else:
    print("Non valide")

Exercice Type Bac

def mystere(L: list) -> int:
    """Fonction fréquente en examen"""
    c = 0
    for x in L:
        if x % 3 == 0:
            c += 1
    return c

# Que retourne mystere([2, 6, 9, 12, 5]) ? → 3

Conseil pour le bac : Maîtrisez particulièrement les slices, les compréhensions de liste et les opérations modulo (%) qui sont très fréquentes dans les sujets.


Cette version approfondie :

  1. Présente les opérations sous forme de tableaux clairs
  2. Inclut des exemples types de sujets de bac
  3. Mentionne la complexité algorithmique (utile pour les questions d'optimisation)
  4. Ajoute des exercices ciblés
  5. Met en avant les pièges fréquents (comme la division / vs //)

2. Structures de Contrôle

2.1 Conditions (if/elif/else)

Structure complète :

if condition1:
    # Bloc 1
elif condition2:
    # Bloc 2
else:
    # Bloc 3

Exemple concret :

temperature = 25

if temperature > 30:
    print("Il fait chaud")
elif 20 <= temperature <= 30:
    print("Température idéale")
else:
    print("Il fait froid")

2.2 Boucles

Boucle for (itération connue)

# Afficher les nombres de 1 à 5
for i in range(1, 6):
    print(i)

# Parcourir une liste
fruits = ["pomme", "banane", "orange"]
for fruit in fruits:
    print(fruit.upper())

Boucle while (itération inconnue)

# Deviner un nombre
secret = 7
essai = 0

while essai != secret:
    essai = int(input("Devinez le nombre : "))
    
print("Bravo !")

Comparaison :

for while
Nombre d'itérations connu Condition d'arrêt
for i in range(5): while x < 10:
Parcours de séquences Logique complexe

3. Fonctions et Procédures

3.1 Définition de fonction

def calcul_aire(longueur, largeur):
    """Calcule l'aire d'un rectangle"""
    aire = longueur * largeur
    return aire

Appel :

resultat = calcul_aire(5, 3)  # → 15

3.2 Paramètres optionnels

def saluer(nom, fois=1):
    """Saluer plusieurs fois"""
    for _ in range(fois):
        print("Bonjour", nom)
        
saluer("Pierre")      # 1 fois
saluer("Marie", 3)    # 3 fois

4. Listes et Dictionnaires

4.1 Manipulation de listes

nombres = [4, 8, 15, 16, 23, 42]

# Accès
premier = nombres[0]       # → 4
dernier = nombres[-1]      # → 42

# Modification
nombres[1] = 10            # [4, 10, 15,...]

# Méthodes utiles
nombres.append(108)        # Ajoute en fin
nombres.pop(2)             # Supprime l'élément à l'index 2

4.2 Dictionnaires (clé-valeur)

eleve = {
    "nom": "Dupont",
    "age": 17,
    "notes": [12, 15, 9]
}

# Accès
print(eleve["nom"])        # → "Dupont"

# Ajout
eleve["classe"] = "1ère A"

5. Entrées/Sorties

5.1 Interaction utilisateur

nom = input("Comment t'appelles-tu ? ")
age = int(input("Quel âge as-tu ? "))

print(f"Salut {nom}, tu as {age} ans !")

5.2 Fichiers

# Écrire dans un fichier
with open("journal.txt", "w") as f:
    f.write("Première ligne\n")
    f.write("Deuxième ligne\n")

# Lire un fichier
with open("journal.txt", "r") as f:
    contenu = f.read()

6. Bonnes Pratiques

6.1 Commentaires

# Ceci est un commentaire sur une ligne

"""
Ceci est un commentaire
multi-lignes
"""

6.2 Gestion des erreurs

try:
    nombre = int(input("Entrez un nombre : "))
except ValueError:
    print("Ce n'est pas un nombre valide !")

Exercices Pratiques

Exercice 1 : Calculatrice simple

def calculatrice():
    a = float(input("Premier nombre : "))
    op = input("Opération (+, -, *, /) : ")
    b = float(input("Deuxième nombre : "))
    
    if op == "+":
        print(f"Résultat : {a + b}")
    elif op == "-":
        print(f"Résultat : {a - b}")
    elif op == "*":
        print(f"Résultat : {a * b}")
    elif op == "/":
        if b != 0:
            print(f"Résultat : {a / b}")
        else:
            print("Erreur : division par zéro")
    else:
        print("Opération invalide")

Exercice 2 : Devinette améliorée

import random

def jeu_devinette():
    nombre_secret = random.randint(1, 100)
    essais = 0
    
    while True:
        essai = int(input("Devinez (1-100) : "))
        essais += 1
        
        if essai < nombre_secret:
            print("Trop petit !")
        elif essai > nombre_secret:
            print("Trop grand !")
        else:
            print(f"Gagné en {essais} coups !")
            break

Annexes

Opérateurs utiles

Opérateur Description Exemple
== Égal à 5 == 5 → True
!= Différent de 3 != 2 → True
in Appartient à "a" in "abc" → True

Méthodes de string

texte = "Bonjour"
texte.upper()       # → "BONJOUR"
texte.replace("j", "k")  # → "Bonkour"
texte.split("o")    # → ["B", "nj", "ur"]

Ce cours couvre les bases de Python pour le lycée. Pour aller plus loin, consultez la documentation officielle : https://docs.python.org/fr/3/tutorial/index.html


Ce Markdown comprend :
1. Une progression pédagogique claire
2. De nombreux exemples commentés
3. Des comparaisons visuelles (tableaux)
4. Des exercices pratiques
5. Des annotations sur les bonnes pratiques
6. Des sections bien distinctes

Vous pouvez le copier directement dans un fichier `.md` ou l'importer dans des plateformes comme Notion ou Obsidian.