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
(carint + 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
(car10 > 9
est vrai eta
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 faudraitinsert(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 avecstr
) -
TypeError
(serait vrai si on essayaitx + 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 :
()
(parenthèses)**
(puissance)*
,/
,//
,%
+
,-
==
,!=
,<
,>
,<=
,>=
not
and
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 :
- Présente les opérations sous forme de tableaux clairs
- Inclut des exemples types de sujets de bac
- Mentionne la complexité algorithmique (utile pour les questions d'optimisation)
- Ajoute des exercices ciblés
- 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.
Aucun commentaire à afficher
Aucun commentaire à afficher