{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "83205bc6",
   "metadata": {},
   "source": [
    "# Exercices pratiques — Python pour le marketing digital\n",
    "\n",
    "\n",
    "\n",
    "| Référence | Contenu principal |\n",
    "|-----------|-------------------|\n",
    "| **Cours 1** | Notebook, variables, types (`int`, `float`, `str`, `bool`), `print`, f-strings, KPI (CPC, taux), listes et `len` |\n",
    "| **Cours 2** | `range`, boucles `for`, listes + boucles, deux listes parallèles, `if` / `else` |\n",
    "| **Cours 3** | Chaînes : concaténation, `len`, `upper`, `lower` ; listes : index, modification |\n",
    "| **Cours 4** | `for` sur listes, `for i in range(len(...))`, `if` / `elif` / `else`, boucle + condition |\n",
    "\n",
    "**Méthode :** complète chaque cellule **TODO**, exécute, puis ouvre la section **Corrections** en bas.\n",
    "\n",
    "\n",
    "---\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6d1a1b4b",
   "metadata": {},
   "source": [
    "## Partie A — Cours 1 : variables, types et KPI\n",
    "\n",
    "### Exercice A1 (guidé) — Une campagne, deux indicateurs\n",
    "\n",
    "1. Crée : `nom_campagne` (texte), `budget`, `clics`, `conversions`.\n",
    "2. Calcule `cpc = budget / clics` et `taux_conversion = conversions / clics`.\n",
    "3. Affiche **une phrase** avec une f-string : `Campagne ... : CPC = ... , taux = ...`\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "a1",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO — Exercice A1\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9d774874",
   "metadata": {},
   "source": [
    "### Exercice A2 (autonomie) — Comparer deux campagnes\n",
    "\n",
    "Même logique pour **deux** campagnes. Affiche deux lignes récapitulatives puis une phrase indiquant **quelle** campagne a le **meilleur** taux (utilise `if` / `elif` / `else` si besoin pour l'égalité).\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a2",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO — Exercice A2\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f2ad10db",
   "metadata": {},
   "source": [
    "### Exercice A3 — Suivre les assignations (comme au Cours 1)\n",
    "\n",
    "Sans exécuter au début, devine la valeur finale de `x` :\n",
    "\n",
    "1. `x = 4`\n",
    "2. `x = x * 5`\n",
    "3. `x = x - 7`\n",
    "\n",
    "Écris ta réponse en **commentaire**, puis décommente le code pour vérifier.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "a3",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO — Exercice A3\n",
    "# Valeur attendue avant exécution : x = ...\n",
    "\n",
    "# x = 4\n",
    "# x = x * 5\n",
    "# x = x - 7\n",
    "# print(x)\n",
    "\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "36b6c74e",
   "metadata": {},
   "source": [
    "### Exercice A4 — Types marketing\n",
    "\n",
    "Crée quatre variables : un entier (impressions), un float (ex. CTR 0.07), une chaîne (marque), un booléen (campagne active). Affiche chaque valeur **et** `type(...)`.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "a4",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO — Exercice A4\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a5md7f2c",
   "metadata": {},
   "source": [
    "### Exercice A5 — Listes alignées (sans boucle, fin du Cours 1)\n",
    "\n",
    "Crée deux listes de même longueur :\n",
    "\n",
    "- `supports = [\"Meta\", \"Google\", \"TikTok\"]`\n",
    "- `depenses = [200, 350, 120]` (euros)\n",
    "\n",
    "1. Affiche le nombre de supports avec `len(supports)`.\n",
    "2. Affiche le **premier** support et la **dernière** dépense (indices `0` et `len(depenses) - 1`).\n",
    "3. Modifie la dépense à l’index `1` (Google) pour la passer à **400**.\n",
    "4. Affiche la liste `depenses` après modification.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a5code91",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO — Exercice A5\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ac9f3f0d",
   "metadata": {},
   "source": [
    "### Exercice B1 — Indices et modification\n",
    "\n",
    "Données :\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "b2data",
   "metadata": {},
   "outputs": [],
   "source": [
    "campagnes = [\"SEA\", \"Social\", \"Email\", \"Affichage\"]\n",
    "budgets = [900, 400, 250, 600]\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b308193e",
   "metadata": {},
   "source": [
    "1. Affiche le **premier** nom de campagne et le **dernier** budget (utilise `len` pour le dernier index).\n",
    "2. Passe le budget de `\"Email\"` à **300**.\n",
    "3. Affiche `budgets` mis à jour.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "b2",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO — Exercice B2 (exécute la cellule données juste au-dessus si besoin)\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6653ebaf",
   "metadata": {},
   "source": [
    "## Partie C — Cours 2 et 4 : `range` et boucles `for`\n",
    "\n",
    "### Exercice C1 — Trois `range`\n",
    "\n",
    "Trois `print(list(range(...)))` pour obtenir :\n",
    "\n",
    "1. Les entiers de **5 à 9** inclus.\n",
    "2. Les multiples de **50** de 0 à 200 inclus : `0, 50, 100, 150, 200`.\n",
    "3. Les entiers **pairs** de 2 à 10 inclus : `2, 4, 6, 8, 10`.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "c1",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO — Exercice C1\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "45af2b45",
   "metadata": {},
   "source": [
    "### Exercice C2 — Boucles `for` et `range`\n",
    "\n",
    "1. `Touchpoint 1` … `Touchpoint 4`.\n",
    "2. `Push jour 1` … `Push jour 5`.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "c2",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO — Exercice C2\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "978484ee",
   "metadata": {},
   "source": [
    "### Exercice C3 — Parcourir une liste\n",
    "\n",
    "Liste `canaux` (au moins 4 éléments). Boucle `for canal in canaux:` → affiche `Canal actif : ...` pour chaque canal.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "c3",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO — Exercice C3\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c4md8a1e",
   "metadata": {},
   "source": [
    "### Exercice C4 — Boucle + accumulateur (logique du Cours 2)\n",
    "\n",
    "On a les dépenses journalières d’une campagne (liste d’entiers) :\n",
    "\n",
    "`depenses_jour = [80, 45, 120, 30, 95]`\n",
    "\n",
    "1. Parcours la liste avec `for montant in depenses_jour:`.\n",
    "2. À chaque fois que `montant` est **strictement supérieur** à `50`, augmente une variable `nb_jours_forts` de **1** (initialise `nb_jours_forts = 0` avant la boucle).\n",
    "3. Après la boucle, affiche : `Jours au-dessus de 50 euros : ...` avec la valeur finale de `nb_jours_forts`.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "c4code22",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO — Exercice C4\n",
    "depenses_jour = [80, 45, 120, 30, 95]\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "748ad79b",
   "metadata": {},
   "source": [
    "## Partie D — Cours 4 : listes parallèles et conditions\n",
    "\n",
    "### Exercice D1 — Mini reporting avec indice\n",
    "\n",
    "Deux listes de même longueur `noms` et `scores`. Boucle `for i in range(len(noms)):` → affiche `Lead ... — score ...`.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "d1",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO — Exercice D1\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "120b13c6",
   "metadata": {},
   "source": [
    "### Exercice D2 — `if` / `elif` / `else` (segment budget)\n",
    "\n",
    "`budget = 750` (change pour tester). Affiche :\n",
    "\n",
    "- `\"Gros budget\"` si `budget >= 1000`\n",
    "- `\"Budget moyen\"` si `500 <= budget < 1000`\n",
    "- `\"Petit budget\"` sinon\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "d2",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO — Exercice D2\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fc3b6f7e",
   "metadata": {},
   "source": [
    "### Exercice D3 — Relances (style mini-examen)\n",
    "\n",
    "Données :\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "d3data",
   "metadata": {},
   "outputs": [],
   "source": [
    "clients = [\"Sara\", \"Tom\", \"Lina\", \"Yan\", \"Noa\"]\n",
    "montants = [95, 40, 150, 20, 200]\n",
    "seuil_relance = 70\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a4d0964c",
   "metadata": {},
   "source": [
    "1. `for i in range(len(clients)):`.\n",
    "2. Affiche `A relancer` si `montants[i] < seuil_relance`, sinon `Client actif`.\n",
    "3. Compte `nb_relance` (clients à relancer).\n",
    "4. Après la boucle : `Nombre total de clients a relancer : ...`\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "d3",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO — Exercice D3\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6b973563",
   "metadata": {},
   "source": [
    "### Exercice D4 (bonus) — Trois catégories\n",
    "\n",
    "Avec les mêmes `clients` et `montants` :\n",
    "\n",
    "- `Client premium` si montant `>= 180`\n",
    "- `Client actif` si `70 <= montant < 180`\n",
    "- `A relancer` si montant `< 70`\n",
    "\n",
    "Une ligne par client : prénom + catégorie.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "d4",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO — Exercice D4 (bonus)\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "507a56c8",
   "metadata": {},
   "source": [
    "---\n",
    "\n",
    "## Entraînement type « mi-parcours » (≈ 45–60 min)\n",
    "\n",
    "**Barème indicatif (20 pts)** : E1 = 4, E2 = 4, E3 = 5, E4 = 7, bonus = +2.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cac8d30b",
   "metadata": {},
   "source": [
    "### Examen blanc — E1 (4 pts)\n",
    "\n",
    "Campagne `\"Soldes_Hiver\"`, budget `360`, clics `90`, conversions `9`. Variables, CPC, taux, phrase f-string.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "e1",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Examen blanc E1\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "db778aac",
   "metadata": {},
   "source": [
    "### Examen blanc — E2 (4 pts)\n",
    "\n",
    "Données :\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "e2data",
   "metadata": {},
   "outputs": [],
   "source": [
    "campagnes_ex = [\"TikTok\", \"Meta\", \"YouTube\", \"LinkedIn\"]\n",
    "budgets_ex = [420, 310, 880, 150]\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "27b0dc77",
   "metadata": {},
   "source": [
    "1. Premier élément de `campagnes_ex`.\n",
    "2. Dernier budget de `budgets_ex`.\n",
    "3. Budget de `\"YouTube\"` → **950**.\n",
    "4. Longueur de chaque liste.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "e2",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Examen blanc E2\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3322e8e1",
   "metadata": {},
   "source": [
    "### Examen blanc — E3 (5 pts)\n",
    "\n",
    "1. `range` : afficher `Semaine 1` … `Semaine 4`.\n",
    "2. Parcourir `medias` (cellule code ci-dessous), une ligne par média.\n",
    "3. Boucle : `Notification #1` … `Notification #5`.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "e3",
   "metadata": {},
   "outputs": [],
   "source": [
    "medias = [\"Audio\", \"Video\", \"Display\", \"Native\"]\n",
    "\n",
    "# Examen blanc E3\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3e5d9020",
   "metadata": {},
   "source": [
    "### Examen blanc — E4 (7 pts)\n",
    "\n",
    "Données :\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "e4data",
   "metadata": {},
   "outputs": [],
   "source": [
    "clients_ex = [\"Eva\", \"Leo\", \"Mia\", \"Sam\", \"Zoe\"]\n",
    "montants_ex = [55, 120, 75, 30, 210]\n",
    "seuil = 80\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "be5956e9",
   "metadata": {},
   "source": [
    "1. `for i in range(len(...))`.\n",
    "2. Si montant **strictement** inférieur à `seuil` → `Relance conseillee`, sinon `Panier OK`.\n",
    "3. Variable `nb_relance` qui compte les relances.\n",
    "4. Affiche `Nombre total de relances conseillees : ...`\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "e4",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Examen blanc E4\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c5989005",
   "metadata": {},
   "source": [
    "### Examen blanc — Bonus (+2 pts)\n",
    "\n",
    "Mêmes listes : `VIP` si `>= 150`, `Standard` si `80 <= montant < 150`, `A risque` si `< 80`. Une ligne : prénom + catégorie.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "e5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Examen blanc — Bonus\n",
    "pass\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "89435246",
   "metadata": {},
   "source": [
    "---\n",
    "\n",
    "## Corrections\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1eaba950",
   "metadata": {},
   "source": [
    "### Correction A1\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "8fecdc8a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Campagne Retargeting panier : CPC = 3.0 , taux = 0.1\n"
     ]
    }
   ],
   "source": [
    "# Correction A1\n",
    "nom_campagne = \"Retargeting panier\"\n",
    "budget = 480\n",
    "clics = 160\n",
    "conversions = 16\n",
    "cpc = budget / clics\n",
    "taux_conversion = conversions / clics\n",
    "print(f\"Campagne {nom_campagne} : CPC = {cpc} , taux = {taux_conversion}\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "56989925",
   "metadata": {},
   "source": [
    "### Correction A2\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "c38016c8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Campagne A — taux 0.08\n",
      "Campagne B — taux 0.05\n",
      "Meilleur taux : campagne A\n"
     ]
    }
   ],
   "source": [
    "# Correction A2\n",
    "budget_a, clics_a, conv_a = 300, 150, 12\n",
    "budget_b, clics_b, conv_b = 450, 300, 15\n",
    "ta, tb = conv_a / clics_a, conv_b / clics_b\n",
    "print(f\"Campagne A — taux {ta}\")\n",
    "print(f\"Campagne B — taux {tb}\")\n",
    "if ta > tb:\n",
    "    print(\"Meilleur taux : campagne A\")\n",
    "elif tb > ta:\n",
    "    print(\"Meilleur taux : campagne B\")\n",
    "else:\n",
    "    print(\"Egalite des taux\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2c9d6ba8",
   "metadata": {},
   "source": [
    "### Correction A3\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "f4702ab4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "13\n"
     ]
    }
   ],
   "source": [
    "# Correction A3 — x vaut 13\n",
    "x = 4\n",
    "x = x * 5\n",
    "x = x - 7\n",
    "print(x)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6f1a9a9e",
   "metadata": {},
   "source": [
    "### Correction A4\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "48de60f4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "10000 <class 'int'>\n",
      "0.052 <class 'float'>\n",
      "ShopNow <class 'str'>\n",
      "True <class 'bool'>\n"
     ]
    }
   ],
   "source": [
    "# Correction A4\n",
    "impressions = 10000\n",
    "ctr = 0.052\n",
    "marque = \"ShopNow\"\n",
    "active = True\n",
    "print(impressions, type(impressions))\n",
    "print(ctr, type(ctr))\n",
    "print(marque, type(marque))\n",
    "print(active, type(active))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a5corrmd01",
   "metadata": {},
   "source": [
    "### Correction A5\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "a5corrcode",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Nombre de supports: 3\n",
      "Premier support: Meta\n",
      "Derniere depense: 120\n",
      "Depenses mises a jour: [200, 400, 120]\n"
     ]
    }
   ],
   "source": [
    "# Correction A5 — parallel lists without loops (Course 1)\n",
    "supports = [\"Meta\", \"Google\", \"TikTok\"]\n",
    "depenses = [200, 350, 120]\n",
    "\n",
    "print(\"Nombre de supports:\", len(supports))\n",
    "print(\"Premier support:\", supports[0])\n",
    "print(\"Derniere depense:\", depenses[len(depenses) - 1])\n",
    "\n",
    "depenses[1] = 400\n",
    "print(\"Depenses mises a jour:\", depenses)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "233d32dd",
   "metadata": {},
   "source": [
    "### Correction B1\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "acaf944c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Promo sur Casque audio au Canada\n",
      "12\n",
      "CASQUE AUDIO\n",
      "casque audio\n"
     ]
    }
   ],
   "source": [
    "# Correction B1\n",
    "produit = \"Casque audio\"\n",
    "pays_cible = \"Canada\"\n",
    "phrase = \"Promo sur \" + produit + \" au \" + pays_cible\n",
    "print(phrase)\n",
    "print(len(produit))\n",
    "print(produit.upper())\n",
    "print(produit.lower())\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "af3658b9",
   "metadata": {},
   "source": [
    "### Correction B2\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "024a8101",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SEA 600\n",
      "[900, 400, 300, 600]\n"
     ]
    }
   ],
   "source": [
    "# Correction B2\n",
    "campagnes = [\"SEA\", \"Social\", \"Email\", \"Affichage\"]\n",
    "budgets = [900, 400, 250, 600]\n",
    "print(campagnes[0], budgets[len(budgets) - 1])\n",
    "budgets[2] = 300\n",
    "print(budgets)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "21850508",
   "metadata": {},
   "source": [
    "### Correction B3\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "7d7efd2f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "La campagne Social a un budget de 400 euros.\n"
     ]
    }
   ],
   "source": [
    "# Correction B3\n",
    "campagnes = [\"SEA\", \"Social\", \"Email\", \"Affichage\"]\n",
    "budgets = [900, 400, 250, 600]\n",
    "i = 1\n",
    "print(\"La campagne \" + campagnes[i] + \" a un budget de \" + str(budgets[i]) + \" euros.\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f7dfc79a",
   "metadata": {},
   "source": [
    "### Correction C1\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "bb5a1ee0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[5, 6, 7, 8, 9]\n",
      "[0, 50, 100, 150, 200]\n",
      "[2, 4, 6, 8, 10]\n"
     ]
    }
   ],
   "source": [
    "# Correction C1\n",
    "print(list(range(5, 10)))\n",
    "print(list(range(0, 201, 50)))\n",
    "print(list(range(2, 11, 2)))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "82a06af9",
   "metadata": {},
   "source": [
    "### Correction C2\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "5f70a298",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Touchpoint 1\n",
      "Touchpoint 2\n",
      "Touchpoint 3\n",
      "Touchpoint 4\n",
      "Push jour 1\n",
      "Push jour 2\n",
      "Push jour 3\n",
      "Push jour 4\n",
      "Push jour 5\n"
     ]
    }
   ],
   "source": [
    "# Correction C2\n",
    "for t in range(1, 5):\n",
    "    print(f\"Touchpoint {t}\")\n",
    "for j in range(1, 6):\n",
    "    print(f\"Push jour {j}\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "72c79a22",
   "metadata": {},
   "source": [
    "### Correction C3\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "0d8c0bb3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Canal actif : Email\n",
      "Canal actif : SMS\n",
      "Canal actif : Push\n",
      "Canal actif : WhatsApp\n"
     ]
    }
   ],
   "source": [
    "# Correction C3\n",
    "canaux = [\"Email\", \"SMS\", \"Push\", \"WhatsApp\"]\n",
    "for canal in canaux:\n",
    "    print(f\"Canal actif : {canal}\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c4corrmd02",
   "metadata": {},
   "source": [
    "### Correction C4\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "c4corrcode",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Jours au-dessus de 50 euros : 3\n"
     ]
    }
   ],
   "source": [
    "# Correction C4 — loop with a counter (Course 2 style)\n",
    "depenses_jour = [80, 45, 120, 30, 95]\n",
    "nb_jours_forts = 0\n",
    "for montant in depenses_jour:\n",
    "    if montant > 50:\n",
    "        nb_jours_forts = nb_jours_forts + 1\n",
    "print(f\"Jours au-dessus de 50 euros : {nb_jours_forts}\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "be18b697",
   "metadata": {},
   "source": [
    "### Correction D1\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "5af34510",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Lead Ana — score 12\n",
      "Lead Ben — score 44\n",
      "Lead Cleo — score 38\n"
     ]
    }
   ],
   "source": [
    "# Correction D1\n",
    "noms = [\"Ana\", \"Ben\", \"Cleo\"]\n",
    "scores = [12, 44, 38]\n",
    "for i in range(len(noms)):\n",
    "    print(f\"Lead {noms[i]} — score {scores[i]}\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9c4338df",
   "metadata": {},
   "source": [
    "### Correction D2\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "f09a662e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Budget moyen\n"
     ]
    }
   ],
   "source": [
    "# Correction D2\n",
    "budget = 750\n",
    "if budget >= 1000:\n",
    "    print(\"Gros budget\")\n",
    "elif budget >= 500:\n",
    "    print(\"Budget moyen\")\n",
    "else:\n",
    "    print(\"Petit budget\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f215c021",
   "metadata": {},
   "source": [
    "### Correction D3\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "04956c3c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sara : Client actif\n",
      "Tom : A relancer\n",
      "Lina : Client actif\n",
      "Yan : A relancer\n",
      "Noa : Client actif\n",
      "Nombre total de clients a relancer : 2\n"
     ]
    }
   ],
   "source": [
    "# Correction D3\n",
    "clients = [\"Sara\", \"Tom\", \"Lina\", \"Yan\", \"Noa\"]\n",
    "montants = [95, 40, 150, 20, 200]\n",
    "seuil_relance = 70\n",
    "nb_relance = 0\n",
    "for i in range(len(clients)):\n",
    "    if montants[i] < seuil_relance:\n",
    "        print(f\"{clients[i]} : A relancer\")\n",
    "        nb_relance = nb_relance + 1\n",
    "    else:\n",
    "        print(f\"{clients[i]} : Client actif\")\n",
    "print(f\"Nombre total de clients a relancer : {nb_relance}\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "77f0c185",
   "metadata": {},
   "source": [
    "### Correction D4\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "ae2fac3f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sara — Client actif\n",
      "Tom — A relancer\n",
      "Lina — Client actif\n",
      "Yan — A relancer\n",
      "Noa — Client premium\n"
     ]
    }
   ],
   "source": [
    "# Correction D4 (bonus)\n",
    "clients = [\"Sara\", \"Tom\", \"Lina\", \"Yan\", \"Noa\"]\n",
    "montants = [95, 40, 150, 20, 200]\n",
    "for i in range(len(clients)):\n",
    "    m = montants[i]\n",
    "    if m >= 180:\n",
    "        cat = \"Client premium\"\n",
    "    elif m >= 70:\n",
    "        cat = \"Client actif\"\n",
    "    else:\n",
    "        cat = \"A relancer\"\n",
    "    print(f\"{clients[i]} — {cat}\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6f02e4cf",
   "metadata": {},
   "source": [
    "### Correction E1\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "84ee5a7d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Campagne Soldes_Hiver : CPC = 4.0 , taux = 0.1\n"
     ]
    }
   ],
   "source": [
    "# Correction E1\n",
    "nom = \"Soldes_Hiver\"\n",
    "budget = 360\n",
    "clics = 90\n",
    "conversions = 9\n",
    "cpc = budget / clics\n",
    "taux = conversions / clics\n",
    "print(f\"Campagne {nom} : CPC = {cpc} , taux = {taux}\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "63bce534",
   "metadata": {},
   "source": [
    "### Correction E2\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "ba0a23c0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "TikTok\n",
      "150\n",
      "4 4\n",
      "[420, 310, 950, 150]\n"
     ]
    }
   ],
   "source": [
    "# Correction E2\n",
    "campagnes_ex = [\"TikTok\", \"Meta\", \"YouTube\", \"LinkedIn\"]\n",
    "budgets_ex = [420, 310, 880, 150]\n",
    "print(campagnes_ex[0])\n",
    "print(budgets_ex[len(budgets_ex) - 1])\n",
    "budgets_ex[2] = 950\n",
    "print(len(campagnes_ex), len(budgets_ex))\n",
    "print(budgets_ex)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e4e5dfe9",
   "metadata": {},
   "source": [
    "### Correction E3\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "73c31191",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Semaine 1\n",
      "Semaine 2\n",
      "Semaine 3\n",
      "Semaine 4\n",
      "Audio\n",
      "Video\n",
      "Display\n",
      "Native\n",
      "Notification #1\n",
      "Notification #2\n",
      "Notification #3\n",
      "Notification #4\n",
      "Notification #5\n"
     ]
    }
   ],
   "source": [
    "# Correction E3\n",
    "medias = [\"Audio\", \"Video\", \"Display\", \"Native\"]\n",
    "for s in range(1, 5):\n",
    "    print(f\"Semaine {s}\")\n",
    "for m in medias:\n",
    "    print(m)\n",
    "for n in range(1, 6):\n",
    "    print(f\"Notification #{n}\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "874064bb",
   "metadata": {},
   "source": [
    "### Correction E4\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "632de2c2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Relance conseillee Eva\n",
      "Panier OK Leo\n",
      "Relance conseillee Mia\n",
      "Relance conseillee Sam\n",
      "Panier OK Zoe\n",
      "Nombre total de relances conseillees : 3\n"
     ]
    }
   ],
   "source": [
    "# Correction E4\n",
    "clients_ex = [\"Eva\", \"Leo\", \"Mia\", \"Sam\", \"Zoe\"]\n",
    "montants_ex = [55, 120, 75, 30, 210]\n",
    "seuil = 80\n",
    "nb_relance = 0\n",
    "for i in range(len(clients_ex)):\n",
    "    if montants_ex[i] < seuil:\n",
    "        print(\"Relance conseillee\", clients_ex[i])\n",
    "        nb_relance += 1\n",
    "    else:\n",
    "        print(\"Panier OK\", clients_ex[i])\n",
    "print(f\"Nombre total de relances conseillees : {nb_relance}\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e983294e",
   "metadata": {},
   "source": [
    "### Correction Bonus\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "5546f14b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Eva — A risque\n",
      "Leo — Standard\n",
      "Mia — A risque\n",
      "Sam — A risque\n",
      "Zoe — VIP\n"
     ]
    }
   ],
   "source": [
    "# Correction bonus\n",
    "clients_ex = [\"Eva\", \"Leo\", \"Mia\", \"Sam\", \"Zoe\"]\n",
    "montants_ex = [55, 120, 75, 30, 210]\n",
    "for i in range(len(clients_ex)):\n",
    "    m = montants_ex[i]\n",
    "    if m >= 150:\n",
    "        c = \"VIP\"\n",
    "    elif m >= 80:\n",
    "        c = \"Standard\"\n",
    "    else:\n",
    "        c = \"A risque\"\n",
    "    print(f\"{clients_ex[i]} — {c}\")\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
