# Premiers pas en Python et SQL, avec l'IA — guide express

**12 capsules · environ une minute chacune · FR et EN · JupyterLite · en tournage**

Douze gestes pour des non-développeurs : lire un fichier de données, filtrer, calculer, faire un graphique, poser une requête SQL simple, se faire aider par une IA sans copier aveuglément.
Tout se passe dans **JupyterLite** sur jupyter.org/try-jupyter/lab : gratuit, sans compte, sans installation. Noyau Python (Pyodide) pour pandas et les graphiques, noyau SQLite (xsqlite) pour le SQL. L'interface est en anglais.

---

## Les douze gestes / The twelve moves

| # | Capsule | Move |
|---|---|---|
| py01 | Ouvrir JupyterLite et lancer sa première ligne | Open JupyterLite and run your first line |
| py02 | Charger un fichier CSV | Load a CSV file |
| py03 | Garder seulement les lignes utiles | Keep only the rows you need |
| py04 | Calculer une colonne et un total | Add a calculated column and a total |
| py05 | Totaliser par magasin | Totals by store |
| py06 | Un graphique en une ligne | A chart in one line |
| py07 | Enregistrer et télécharger le résultat | Save and download the result |
| py08 | Ouvrir une base SQLite et lire une table | Open a SQLite database and read a table |
| py09 | Filtrer et trier en SQL | Filter and sort in SQL |
| py10 | Compter et additionner en SQL | Count and add up in SQL |
| py11 | Demander le code à l'IA, puis vérifier | Ask AI for the code, then check it |
| py12 | Comprendre un message d'erreur avec l'IA | Understand an error message with AI |

---

## Où cliquer / Where to click

- **Nouveau notebook / New notebook** : lanceur › Notebook › Python (Pyodide), ou SQLite (xsqlite) pour le SQL. *Launcher › Notebook › Python (Pyodide), or SQLite (xsqlite) for SQL.*
- **Ajouter un fichier / Add a file** : glisser le fichier dans le panneau de gauche. *Drag the file into the left panel.*
- **Récupérer un fichier / Get a file back** : clic droit sur le fichier › Download. *Right-click the file › Download.*
- **Exécuter une cellule / Run a cell** : Maj + Entrée. *Shift + Enter.*

## Python (pandas) : les lignes à retenir / Lines to remember

| Geste / Move | Code |
|---|---|
| Appeler pandas / Load pandas | `import pandas as pd` |
| Lire un CSV / Read a CSV | `df = pd.read_csv("fichier.csv")` |
| Cinq premières lignes / First five rows | `df.head()` |
| Taille (lignes, colonnes) / Size (rows, columns) | `df.shape` |
| Filtrer / Filter | `df[df["colonne"] == "valeur"]`, `df[df["colonne"] > 100]` |
| Nouvelle colonne / New column | `df["c"] = df["a"] * df["b"]` |
| Total | `df["c"].sum()` |
| Total par groupe / Total by group | `df.groupby("colonne")["c"].sum()` |
| Graphique en barres / Bar chart | `resultat.plot(kind="bar", rot=0, title="…");` |
| Enregistrer / Save | `resultat.to_csv("resultat.csv")` |

## SQL (SQLite) : les lignes à retenir / Lines to remember

| Geste / Move | Code |
|---|---|
| Ouvrir une base en lecture seule / Open a database read-only | `%LOAD base.db r` |
| Lire une table / Read a table | `SELECT * FROM table LIMIT 5;` |
| Filtrer et trier / Filter and sort | `WHERE montant > 200` · `ORDER BY montant DESC` |
| Compter, additionner / Count, add up | `COUNT(*)`, `SUM(montant)`, `GROUP BY`, `AS` |

---

## Avec l'IA / With AI

**py11** — Décrivez votre tableau, les colonnes, pas les données : « J'ai un tableau pandas df avec les colonnes … Écris une ligne de Python qui donne … » Lisez la ligne avant de la copier, puis vérifiez-la sur un chiffre connu.
*Describe your table, the columns, not the data: "I have a pandas table df with the columns … Write one line of Python that gives …" Read the line before you copy it, then check it against a number you know.*

**py12** — Lisez d'abord la dernière ligne du message d'erreur, puis collez la ligne de code et l'erreur dans l'IA : « Que veut dire cette erreur ? »
*Read the last line of the error message first, then paste the line of code and the error into the AI: "What does this error mean?"*

---

## Les cinq réflexes / The five reflexes

1. **Le nom de la colonne s'écrit exactement comme dans le fichier.**
   Write the column name exactly as it is in the file.
2. **Le graphique montre le même chiffre que le tableau, pas plus.**
   The chart shows the same numbers as the table, nothing more.
3. **Ici, les fichiers restent dans ce navigateur. Téléchargez ce que vous voulez garder.**
   Here, files stay in this browser. Download what you want to keep.
4. **Jamais de données réelles dans une IA publique, et toujours un chiffre de contrôle.**
   Never put real data into a public AI, and always keep a check number.
5. **On comprend la correction avant de l'appliquer.**
   Understand the fix before you apply it.

---

*Jupyter, JupyterLite, Python et SQLite appartiennent à leurs projets respectifs ; SkillKapsul est indépendant. Parcours en tournage : code testé dans JupyterLite le 01/11/2026, libellés à confirmer à l'écran. Données de démo 100 % inventées.*
