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:
@@ -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/)
|
||||
@@ -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/)
|
||||
@@ -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/)
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user