← Retour aux coursProgrammation

Python est simple à lire, mais assez puissant pour de vrais systèmes.

Ce cours te donne une base propre : types, contrôle du flux, fonctions, collections, erreurs, modules et environnements virtuels.

Niveau · débutantLecture · 40 minPython 3
Illustration Python
PrérequisAucune expérience requise
ObjectifÉcrire un petit programme structuré
RéférenceDocumentation Python

Objectifs d’apprentissage

  • manipuler les principaux types et opérateurs ;
  • écrire conditions et boucles lisibles ;
  • concevoir des fonctions avec paramètres et valeurs de retour ;
  • choisir entre liste, tuple, dictionnaire et ensemble ;
  • gérer les erreurs avec try/except ;
  • isoler les dépendances d’un projet avec venv.

1. Premier programme

name = "Awa"
print(f"Bonjour {name} !")

Python privilégie une syntaxe lisible. Les chaînes préfixées par f permettent d’insérer facilement des expressions dans du texte.

2. Variables et types

age = 17             # int
price = 12.5         # float
name = "Moussa"      # str
active = True        # bool
nothing = None       # absence de valeur

Python est dynamiquement typé : le type est associé à la valeur plutôt qu’à une déclaration explicite de variable. Cela ne signifie pas que les types sont inexistants.

3. Conditions

score = 14

if score >= 10:
    print("Validé")
elif score >= 8:
    print("Presque")
else:
    print("À retravailler")

L’indentation regroupe les instructions appartenant au même bloc.

4. Boucles

skills = ["HTML", "CSS", "Python"]

for skill in skills:
    print(skill)

attempts = 0
while attempts < 3:
    attempts += 1

Utilise for lorsque tu parcours une collection, et while lorsqu’une répétition dépend d’une condition.

5. Structures de données

TypeCaractéristiqueExemple
listordonnée, modifiable["HTML", "CSS"]
tupleordonné, non modifiable(12.6, -8.0)
dictpaires clé-valeur{"name": "Awa"}
setvaleurs uniques{"Python", "JS"}
student = {
    "name": "Fanta",
    "score": 16,
    "skills": ["Python", "HTML"]
}
print(student["name"])

6. Fonctions

def calculate_total(price, quantity=1):
    return price * quantity

total = calculate_total(4500, 3)
print(total)

Une fonction doit idéalement accomplir une responsabilité identifiable. Les paramètres configurent son comportement et return fournit le résultat à l’appelant.

7. Compréhensions : transformer une collection

prices = [5000, 12000, 28000, 45000]
affordable = [price for price in prices if price <= 30000]

Les compréhensions sont puissantes, mais une version trop complexe devient moins lisible qu’une boucle classique. La clarté reste prioritaire.

8. Gérer les erreurs

raw = input("Âge : ")

try:
    age = int(raw)
except ValueError:
    print("Entre un nombre valide.")

Évite les except: trop larges lorsque tu peux cibler une exception précise. Cela empêche de masquer des erreurs inattendues.

9. Modules et imports

# tools.py
def slugify(text):
    return text.lower().replace(" ", "-")

# app.py
from tools import slugify
print(slugify("Mon Projet"))

Les modules permettent de répartir les responsabilités dans plusieurs fichiers plutôt que d’accumuler tout le programme dans un seul script.

10. Environnements virtuels

Deux projets peuvent dépendre de versions différentes d’une bibliothèque. La documentation Python recommande les environnements virtuels pour isoler les dépendances.

python -m venv .venv

Active ensuite l’environnement selon ton système, puis installe uniquement les dépendances nécessaires au projet. Le dossier d’environnement lui-même ne doit généralement pas être versionné.

11. Lire un fichier proprement

with open("notes.txt", "r", encoding="utf-8") as file:
    content = file.read()

print(content)

Le bloc with garantit la fermeture correcte de la ressource après utilisation.

Mini-lab Python

Simule une boucle de salutation

Entre trois prénoms séparés par des virgules. Le navigateur simule la sortie attendue.

Bonjour Awa !
Bonjour Moussa !
Bonjour Fanta !

Mini-projet — analyser des notes

Crée une liste de dictionnaires contenant name et score. Écris une fonction qui calcule la moyenne, affiche les élèves ayant au moins 10 et gère le cas d’une liste vide. Découpe le calcul et l’affichage en fonctions différentes.

Python & logique · atelier progressif

Décomposer un problème en fonctions testables

Python permet de se concentrer sur la logique sans beaucoup de syntaxe. Pour progresser, il ne suffit pas de connaître les mots-clés : il faut savoir décomposer un problème en entrées, traitement et résultat. Les fonctions facilitent les vérifications, les listes rassemblent des valeurs et les conditions décrivent les cas à traiter. La gestion des erreurs évite qu’une entrée inattendue interrompe tout le programme.

Pratique pas à pas

  1. Crée un fichier notes.py avec l’exemple ci-dessous et exécute-le avec Python 3.
  2. Remplace les notes par une liste vide pour observer la gestion de ce cas particulier.
  3. Ajoute un appel avec [10, 15, 20] et prédis le résultat avant de relancer le programme. Explique la différence entre return et print.

Exemple à essayer

def moyenne(notes):
    if not notes:
        return None
    return sum(notes) / len(notes)

resultat = moyenne([12, 14, 16])
if resultat is None:
    print('Aucune note')
else:
    print(f'Moyenne : {resultat:.1f}')

Ce que tu dois observer : Le programme affiche Moyenne : 14.0. Avec une liste vide, il renvoie None et évite une division par zéro.

Erreur fréquente : Oublier de tester la liste vide ou confondre l’affichage d’un résultat avec la valeur renvoyée par une fonction.

Vérifie que tu as compris

Pourquoi découper un programme en fonctions courtes ?

Pour faciliter la lecture, la réutilisation et les tests indépendants.

Quelle erreur une liste vide pourrait-elle provoquer sans vérification ?

Une division par zéro lors du calcul de la moyenne.

Une fois l’atelier réalisé et les questions comprises, valide cette étape dans ton parcours.

À retenir

  • Python mise beaucoup sur la lisibilité et l’indentation.
  • Choisir la bonne structure de données simplifie le reste du programme.
  • Les fonctions et modules permettent de maîtriser la complexité.
  • Les environnements virtuels isolent les dépendances entre projets.
Pause active

Teste ta compréhension

Pourquoi utiliser un environnement virtuel ?

Références

Cours suivant

Versionner et publier un site avec GitHub Pages.

Continuer →