ajout exercices, corrections diverses, glossaire

- Ajout des 10 TPs d'évaluation (sans PDF)
- Création GLOSSAIRE.md et AMELIORATIONS.md
- Corrections f-strings, eval(), sommaires

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-29 23:37:26 +01:00
parent 66323aac75
commit 616dd49e8c
43 changed files with 8682 additions and 42 deletions

View File

@@ -14,6 +14,70 @@ Avoir pris en main l'éditeur en ligne [Basthon](../NOTEBOOK.ipynb)
4. Suivre le déroulé du TD, les réponses sont à mettre directement dans votre fichier,
5. À la fin de la séance, n'oubliez pas de sauvegarder votre fichier sur votre clé USB ou espace personnel.
---------
## Mémo - Les variables en Python
### Qu'est-ce qu'une variable ?
Une **variable** est un espace de stockage en mémoire, caractérisé par :
- Un **nom** (identifiant)
- Un **type** (int, float, str...)
- Une **valeur**
### Affectation
```python
age = 17 # Affecte la valeur 17 à la variable age
nom = "Alice" # Affecte la chaîne "Alice" à la variable nom
```
### Les types de base
| Type | Description | Exemple |
|------|-------------|---------|
| `int` | Entier | `42`, `-7` |
| `float` | Décimal (flottant) | `3.14`, `1.7e2` |
| `str` | Chaîne de caractères | `"Bonjour"`, `'NSI'` |
### Opérateurs arithmétiques
| Opérateur | Description | Exemple |
|-----------|-------------|---------|
| `+` | Addition | `5 + 2``7` |
| `-` | Soustraction | `5 - 2``3` |
| `*` | Multiplication | `5 * 2``10` |
| `/` | Division | `5 / 2``2.5` |
| `//` | Division entière | `5 // 2``2` |
| `%` | Modulo (reste) | `5 % 2``1` |
| `**` | Puissance | `5 ** 2``25` |
### Fonctions utiles
```python
print(variable) # Affiche la valeur
type(variable) # Renvoie le type
len(chaine) # Longueur d'une chaîne
input("Message") # Saisie utilisateur (renvoie str)
```
### Conversion de types
```python
int("42") # Convertit en entier → 42
float("3.14") # Convertit en flottant → 3.14
str(42) # Convertit en chaîne → "42"
```
### Règles de nommage
- Lettres minuscules, chiffres, underscore `_`
- Ne pas commencer par un chiffre
- Pas d'accents ni d'espaces
- Choisir des noms explicites
---------
## Pour aller plus loin
Une fois le TD __fini__ et __validé__, vous pouvez effectuer l'[activité suivante](../chapitre_2/)

View File

@@ -14,6 +14,79 @@ Avoir effectué l'activité sur les [variables](../chapitre_1/)
4. Suivre le déroulé du TD, les réponses sont à mettre directement dans votre fichier,
5. À la fin de la séance, n'oubliez pas de sauvegarder votre fichier sur votre clé USB ou espace personnel.
---------
## Mémo - Les instructions conditionnelles
### Structure de base : if
```python
if condition:
# Instructions exécutées si la condition est vraie
print("Condition vraie")
```
### Structure complète : if / elif / else
```python
if condition1:
# Si condition1 est vraie
print("Cas 1")
elif condition2:
# Sinon, si condition2 est vraie
print("Cas 2")
else:
# Sinon (aucune condition vraie)
print("Cas par défaut")
```
### Opérateurs de comparaison
| Opérateur | Signification | Exemple |
|-----------|---------------|---------|
| `==` | Égal à | `a == 5` |
| `!=` | Différent de | `a != 5` |
| `<` | Strictement inférieur | `a < 5` |
| `>` | Strictement supérieur | `a > 5` |
| `<=` | Inférieur ou égal | `a <= 5` |
| `>=` | Supérieur ou égal | `a >= 5` |
### Opérateurs logiques
| Opérateur | Signification | Exemple |
|-----------|---------------|---------|
| `and` | ET logique | `a > 0 and a < 10` |
| `or` | OU logique | `a < 0 or a > 10` |
| `not` | NON logique | `not (a == 5)` |
### Exemple complet
```python
age = int(input("Quel est votre âge ? "))
if age < 0:
print("Âge invalide")
elif age < 18:
print("Vous êtes mineur")
elif age < 65:
print("Vous êtes adulte")
else:
print("Vous êtes senior")
```
### Attention à l'indentation !
En Python, l'**indentation** (les espaces en début de ligne) est obligatoire et définit les blocs de code.
```python
if condition:
instruction1 # Dans le if (4 espaces)
instruction2 # Dans le if (4 espaces)
instruction3 # Hors du if (pas d'indentation)
```
---------
## Pour aller plus loin
Une fois le TD __fini__ et __validé__, vous pouvez effectuer l'[activité suivante](../chapitre_3/)

View File

@@ -14,6 +14,84 @@ Avoir effectué l'activité sur les [instructions conditionnelles](../chapitre_2
4. Suivre le déroulé du TD, les réponses sont à mettre directement dans votre fichier,
5. À la fin de la séance, n'oubliez pas de sauvegarder votre fichier sur votre clé USB ou espace personnel.
---------
## Mémo - Les boucles
### Boucle for (boucle bornée)
Utilisée quand on **connaît le nombre d'itérations** à l'avance.
```python
# Répéter 5 fois (i vaut 0, 1, 2, 3, 4)
for i in range(5):
print(i)
# Parcourir une liste
for element in liste:
print(element)
# Parcourir une chaîne caractère par caractère
for lettre in "Bonjour":
print(lettre)
```
### La fonction range()
| Syntaxe | Résultat |
|---------|----------|
| `range(5)` | 0, 1, 2, 3, 4 |
| `range(2, 7)` | 2, 3, 4, 5, 6 |
| `range(0, 10, 2)` | 0, 2, 4, 6, 8 |
| `range(5, 0, -1)` | 5, 4, 3, 2, 1 |
### Boucle while (boucle non bornée)
Utilisée quand on **ne connaît pas** le nombre d'itérations à l'avance.
```python
# Répéter tant que la condition est vraie
compteur = 0
while compteur < 5:
print(compteur)
compteur = compteur + 1 # Ne pas oublier !
```
### Comparaison for vs while
| Situation | Boucle à utiliser |
|-----------|-------------------|
| Répéter n fois | `for i in range(n)` |
| Parcourir une liste | `for element in liste` |
| Jusqu'à une condition | `while condition` |
| Saisie utilisateur valide | `while` |
### Exemple : Parcourir avec l'indice
```python
liste = ["a", "b", "c"]
# Méthode 1 : par les éléments
for element in liste:
print(element)
# Méthode 2 : par les indices
for i in range(len(liste)):
print(i, liste[i])
```
### Attention aux boucles infinies !
```python
# DANGER : boucle infinie (n n'est jamais modifié)
n = 0
while n < 5:
print(n)
# n = n + 1 ← Oublié !
```
---------
## Pour aller plus loin
Une fois le TD __fini__ et __validé__, vous pouvez effectuer l'[activité suivante](../chapitre_4/)

View File

@@ -13,3 +13,113 @@ Avoir effectué l'activité sur les [boucles](../chapitre_3/)
3. Ouvrir le fichier TD.ipynb téléchargé,
4. Suivre le déroulé du TD, les réponses sont à mettre directement dans votre fichier,
5. À la fin de la séance, n'oubliez pas de sauvegarder votre fichier sur votre clé USB ou espace personnel.
---------
## Mémo - Les fonctions
### Définir une fonction
```python
def nom_fonction(parametre1, parametre2):
"""Documentation de la fonction (docstring)"""
# Instructions
resultat = parametre1 + parametre2
return resultat
```
### Appeler une fonction
```python
# Définition
def carre(x):
return x * x
# Appel
resultat = carre(5) # resultat vaut 25
print(carre(3)) # Affiche 9
```
### Fonction sans retour
```python
def afficher_bonjour(prenom):
print("Bonjour", prenom)
# Pas de return → renvoie None
afficher_bonjour("Alice") # Affiche : Bonjour Alice
```
### Fonction avec plusieurs paramètres
```python
def aire_rectangle(longueur, largeur):
return longueur * largeur
surface = aire_rectangle(5, 3) # surface vaut 15
```
### Fonction avec valeur par défaut
```python
def saluer(prenom, message="Bonjour"):
print(message, prenom)
saluer("Alice") # Affiche : Bonjour Alice
saluer("Bob", "Salut") # Affiche : Salut Bob
```
### Portée des variables
```python
x = 10 # Variable globale
def ma_fonction():
y = 5 # Variable locale (existe uniquement dans la fonction)
return x + y
print(ma_fonction()) # Affiche 15
# print(y) # ERREUR : y n'existe pas ici
```
### Docstring et spécification
```python
def moyenne(a, b):
"""
Calcule la moyenne de deux nombres.
Paramètres:
a (int ou float): premier nombre
b (int ou float): deuxième nombre
Retourne:
float: la moyenne de a et b
"""
return (a + b) / 2
```
### Exemple complet
```python
def est_pair(n):
"""Renvoie True si n est pair, False sinon."""
if n % 2 == 0:
return True
else:
return False
# Version simplifiée
def est_pair(n):
return n % 2 == 0
# Utilisation
print(est_pair(4)) # True
print(est_pair(7)) # False
```
---------
## Pour aller plus loin
Félicitations ! Vous avez terminé les bases de la programmation Python.