Programmation et Algorithmique
Python, algorithmes, variables, boucles, fonctions et structures de données
Objectifs pédagogiques
- Maîtriser les structures de base de Python : variables, types de données, opérateurs
- Comprendre les structures conditionnelles (if/elif/else) et les boucles (for/while)
- Créer des fonctions réutilisables avec paramètres et valeurs de retour
- Utiliser les structures de données : listes, tuples et dictionnaires
- Concevoir des algorithmes simples pour résoudre des problèmes techniques
1. Introduction à Python
Python est un langage de programmation créé par Guido van Rossum en 1991. Il est devenu le langage de référence pour l'enseignement et l'industrie grâce à sa syntaxe claire et lisible. En STI2D, Python est utilisé pour programmer des systèmes embarqués, traiter des données de capteurs et automatiser des tâches.
# Premier programme Python
print("Bonjour STI2D !")
# Variables et types
temperature = 25.5 # float (nombre décimal)
capteur_actif = True # booléen
nom_capteur = "DHT22" # chaîne de caractères
nb_mesures = 100 # entier (int)Python se distingue par son typage dynamique : le type d'une variable est déterminé automatiquement lors de l'affectation. Cette caractéristique simplifie l'écriture du code mais nécessite une attention particulière pour éviter les erreurs de type.
L'indentation (espaces en début de ligne) est obligatoire en Python. Elle définit les blocs de code. Convention : 4 espaces par niveau d'indentation.
Types de données fondamentaux
| Type | Description | Exemple |
|---|---|---|
| int | Nombre entier | 42, -7, 0 |
| float | Nombre décimal | 3.14, -0.5, 2.0 |
| str | Chaîne de caractères | "Bonjour", 'STI2D' |
| bool | Booléen (vrai/faux) | True, False |
2. Structures conditionnelles
Les structures conditionnelles permettent d'exécuter différentes portions de code selon qu'une condition est vraie ou fausse. C'est fondamental pour créer des programmes capables de prendre des décisions, comme un système qui active une alarme si la température dépasse un seuil.
# Structure if / elif / else
temperature = 28
if temperature > 30:
print("Alerte : température élevée !")
activer_ventilation = True
elif temperature > 25:
print("Température confortable")
activer_ventilation = False
else:
print("Température fraîche")
activer_chauffage = TrueOpérateurs de comparaison
==Égal à
!=Différent de
>Supérieur à
<Inférieur à
>=Supérieur ou égal
<=Inférieur ou égal
Opérateurs logiques
Les opérateurs and, or etnot permettent de combiner plusieurs conditions :
# Conditions combinées
if temperature > 25 and humidite > 70:
print("Risque de condensation")
if capteur_erreur or not capteur_connecte:
print("Vérifier le capteur")3. Boucles et itérations
Les boucles permettent de répéter un bloc de code plusieurs fois. C'est essentiel pour traiter des séries de mesures, parcourir des listes de capteurs, ou exécuter une action jusqu'à ce qu'une condition soit remplie.
Boucle for
La boucle for parcourt une séquence (liste, chaîne, range) un élément à la fois :
# Parcourir une liste de capteurs
capteurs = ["DHT22", "BMP280", "MQ-135"]
for capteur in capteurs:
print(f"Lecture du capteur : {capteur}")
# Répéter 10 mesures
for i in range(10):
print(f"Mesure n°{i+1}")Boucle while
La boucle while répète tant qu'une condition est vraie. Attention aux boucles infinies !
# Attendre que la température descende
temperature = 35
while temperature > 25:
print(f"Temp: {temperature}°C - Ventilation ON")
temperature = temperature - 1 # Simulation refroidissement
print("Température normale atteinte")Une boucle while True: sans instruction break crée une boucle infinie. Prévoyez toujours une condition de sortie.
4. Fonctions
Une fonction est un bloc de code réutilisable qui effectue une tâche spécifique. Les fonctions permettent de structurer le code, d'éviter les répétitions et de faciliter la maintenance. En STI2D, on crée des fonctions pour lire des capteurs, calculer des moyennes, ou contrôler des actionneurs.
# Définition d'une fonction
def convertir_celsius_fahrenheit(celsius):
"""Convertit une température de Celsius en Fahrenheit"""
fahrenheit = celsius * 9/5 + 32
return fahrenheit
# Utilisation de la fonction
temp_c = 25
temp_f = convertir_celsius_fahrenheit(temp_c)
print(f"{temp_c}°C = {temp_f}°F") # 25°C = 77.0°FFonction avec plusieurs paramètres
def calculer_moyenne(valeurs):
"""Calcule la moyenne d'une liste de valeurs"""
if len(valeurs) == 0:
return 0
somme = sum(valeurs)
return somme / len(valeurs)
# Exemple d'utilisation
mesures = [23.5, 24.1, 23.8, 24.3, 23.9]
moyenne = calculer_moyenne(mesures)
print(f"Moyenne : {moyenne:.2f}°C") # Moyenne : 23.92°C- • Nommez vos fonctions avec des verbes :
calculer_,lire_,afficher_ - • Ajoutez une docstring pour documenter ce que fait la fonction
- • Une fonction = une tâche (principe de responsabilité unique)
5. Structures de données
Les structures de données permettent d'organiser et de stocker plusieurs valeurs. En STI2D, on les utilise pour gérer des séries de mesures, des configurations de capteurs, ou des historiques de données.
Listes
Une liste est une collection ordonnée et modifiable d'éléments :
# Création et manipulation de listes
temperatures = [22.5, 23.1, 21.8, 24.0]
# Accéder à un élément (index commence à 0)
premiere = temperatures[0] # 22.5
derniere = temperatures[-1] # 24.0
# Ajouter un élément
temperatures.append(23.5)
# Longueur de la liste
nb_mesures = len(temperatures) # 5Dictionnaires
Un dictionnaire associe des clés à des valeurs, idéal pour stocker des configurations ou des données structurées :
# Dictionnaire de configuration capteur
capteur = {
"nom": "DHT22",
"type": "temperature_humidite",
"pin": 4,
"actif": True
}
# Accéder aux valeurs
print(capteur["nom"]) # DHT22
# Ajouter/modifier une valeur
capteur["derniere_lecture"] = 23.5Exemple complet : Station météo
# Mini station météo en Python
def analyser_meteo(mesures):
"""Analyse une série de mesures météo"""
temp_min = min(mesures)
temp_max = max(mesures)
temp_moy = sum(mesures) / len(mesures)
return {
"minimum": temp_min,
"maximum": temp_max,
"moyenne": round(temp_moy, 2)
}
# Utilisation
donnees_jour = [18.5, 22.3, 25.1, 24.8, 20.2]
resultats = analyser_meteo(donnees_jour)
print(f"Min: {resultats['minimum']}°C")
print(f"Max: {resultats['maximum']}°C")
print(f"Moy: {resultats['moyenne']}°C")À retenir
•Python utilise l'indentation pour structurer le code
•Variables : int, float, str, bool sont les types de base
•if/elif/else pour les décisions conditionnelles
•for/while pour répéter des instructions
•Fonctions : def nom(params): return valeur
•Listes et dictionnaires pour organiser les données
