{ "cells": [ { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false }, "source": [ "# Quelques exercices sur les suites" ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false }, "source": [ "## Rappel du cours\n", "\n", "Pour créer une liste avec une boucle, on procéde par accumulation :" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "deletable": false, "editable": false, "trusted": false }, "outputs": [ { "data": { "text/plain": [ "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "liste_entiers = []\n", "for i in range(10):\n", " liste_entiers= liste_entiers + [i]\n", "liste_entiers" ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false }, "source": [ "Pour créer une liste en compréhension, on utlise l'écriture suivante :" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "deletable": false, "editable": false, "trusted": false }, "outputs": [ { "data": { "text/plain": [ "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "liste_entiers = [i for i in range(10)]\n", "liste_entiers" ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false }, "source": [ "### Exercice 1" ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false }, "source": [ "Créer les listes PYTHON respectant les consignes suivantes, en utilisant impérativement une boucle :\n", "1. une liste contenant 10 zéros ;\n", "2. une liste contenant les nombres pairs de 0 à 50, une autre contenant les nombres impairs de 1 à 51 ;\n", "3. une liste contenant 20 nombres tirés aléatoirement entre 1 et 100 inclus (pour cela, vous importerez\n", "la fonction `randrange()` de la bibliothèque `random` : `from random import randrange`) ;\n", "4. une liste contenant les 15 premiers carrés parfaits (`[1, 4, 9, 16, 25, ...]`) ;\n", "5. une liste de 20 nombres alternant entre 0 et 1 (`[0, 1, 0, 1, 0, ...]`). Vous utiliserez pour cela\n", "la parité de l’indice de la boucle (la variable `i` de l’instruction `for i in range(...)`) ;\n", "6. une liste de 100 nombres alternant entre −1 et 1 (`[1, -1, 1, -1, 1, ...]`). Vous pourrez utiliser\n", "astucieusement l’indice de la boucle... mais il existe de nombreuses autres approches !\n", "7. une liste contenant l’ensemble des entiers relatifs compris entre −20 et 20, obligatoirement à l’aide\n", "de la boucle `for i in range(1,21)`." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "trusted": false }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false }, "source": [ "### Exercice 2\n", "\n", "Reprendre l'exercice précédent en utilisant des listes en compréhension." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "trusted": false }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false }, "source": [ "### Exercice 3\n", "\n", "1. Écrire une fonction `minimum` qui prend en paramètre une liste PYTHON de nombres et renvoie la valeur minimale de ces nombres. Vous n’utiliserez pas la fonction `min` de Python.\n", "2. Écrire une fonction `position_minimum` qui prend en paramètre une liste PYTHON de nombres et\n", "renvoie la position de la valeur minimale de ces nombres.\n", "3. Écrire une fonction `positions_minimum` qui prend en paramètre une liste PYTHON de nombres et\n", "renvoie une liste PYTHON contenant les positions de la valeur minimale de ces nombres (la liste pourra\n", "ne contenir qu’un seul élément si le minimum n’apparaît qu’une fois)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "trusted": false }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false }, "source": [ "La cellule suivante vous permet de valider votre exercice." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "deletable": false, "editable": false, "trusted": false }, "outputs": [], "source": [ "assert minimum([3, 5, -9, -9, 4]) == -9, \"/!\\ minimum()\"\n", "assert position_minimum([3, 5, -9, -9, 4]) == 2, \"/!\\ position_minimum()\"\n", "assert positions_minimum([3, 5, -9,-9, 5]) == [2, 3], \"/!\\ positions_minimum()\"" ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false, "trusted": true }, "source": [ "_Aide : on pourra utiliser un variable nommée candidat_min qui sera initialisée au premier élément de la liste (bonus : indiquer pourquoi 0 n'est pas une bonne idée)_" ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false, "trusted": true }, "source": [ "### Exercice 4\n", "\n", "Reprendre l'exercice précédent en remplaçant `minimum` par `maximum`.\n", "\n", "Vous penserez à compléter la cellule de validation de votre travail en remplaçant les … par du code." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "trusted": false }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "trusted": false }, "outputs": [], "source": [ "assert ..." ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false, "trusted": true }, "source": [ "### Exercice 5\n", "\n", "Écrire une fonction `moyenne` qui prend en paramètre une liste PYTHON de nombres et qui renvoie leur moyenne arithmétique." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "trusted": false }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "deletable": false, "editable": false, "trusted": false }, "outputs": [], "source": [ "assert moyenne([3, 5, -9, 2, 4]) == 1, \"/!\\ moyenne()\"" ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false, "trusted": true }, "source": [ "### Exercice 6\n", "\n", "Écrire une fonction `moyenne_pondérée` qui prend en paramètre deux listes PYTHON de nombres et qui renvoie la moyenne arithmétique avec les pondérations associées." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "trusted": false }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "deletable": false, "editable": false, "trusted": false }, "outputs": [], "source": [ "assert moyenne_pondérée([10, 16, 5], [1, 0.5, 2]) == 8.0, \"/!\\ moy_pond()\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "trusted": false }, "outputs": [], "source": [] } ], "metadata": { "celltoolbar": "Éditer les Méta-Données", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 2 }