{"cells": [{"cell_type": "markdown", "id": "88a3ddef", "metadata": {}, "source": ["# Exercices sur les conteneurs\n", "\n", "## Manipulation des listes\n", "\n", "On consid\u00e8re la liste [1, 5, 3, 5, 6, 2]\n", "\n", "1. \u00c9crire une fonction 'somme' qui renvoie la somme des \u00e9l\u00e9ments d'une liste de nombres. On fera explicitement la boucle for. \n", "\n", "2. \u00c9crire une fonction 'maximum' qui renvoie le maximum des \u00e9l\u00e9ments d'une liste de nombres. On fera explicitement la boucle for. \n", "\n", "3. \u00c9crire une fonction 'arg_maximum' qui renvoie l'indice du maximum d'une liste de nombres. On fera explicitement la boucle for. \n", "\n", "\n", "4. \u00c9crire une fonction 'trouve' qui renvoie l'indice correspondant \u00e0 l'argument. On fera explicitement la boucle for. \n", "\n", "5. Comment r\u00e9pondre aux questions 1, 2, 3, 4 en utilisant des fonctions d\u00e9j\u00e0 existantes ?"]}, {"cell_type": "markdown", "id": "d3e1be94", "metadata": {}, "source": ["## Liste comprehension\n", "\n", "1. Cr\u00e9er une liste nom\u00e9e ``nombres`` contenant les entiers de 0 \u00e0 9 inclus\n", "\n", "2. Cr\u00e9er une liste contenant la racine carr\u00e9 des \u00e9l\u00e9ments de ``nombres`` (on utilisera une comprehension de liste)\n", "\n", "3. Cr\u00e9er une liste contenant tous les nombres pairs de la listes ``nombres`` (on utilisera une comprehension de liste)\n", "\n", "4. Toujours en utilisant un comprehension de liste, consid\u00e9rant deux listes ``l1`` et ``l2``, cr\u00e9er une nouvelle liste contenant les couples pris deux \u00e0 deux de l1 et l2. On supposera que les deux liste ont la m\u00eame longueur. Quelle fonction python fait la m\u00eame chose ?\n", "\n", "5. En utilisant la fonction de la question 4 et la liste de la question 2 v\u00e9rifier que l'on a bien $y=x^2$ pour chaque \u00e9l\u00e9ment. "]}, {"cell_type": "markdown", "id": "bf83c877", "metadata": {}, "source": ["## Exercice de base sur les dictionnaires\n", "\n", "1. Tout d'abord, nous allons cr\u00e9er un petit dictionnaire qui contient des informations sur un \u00e9tudiant. Utilisons les cl\u00e9s et valeurs suivantes en exemple :\n", " - 'nom': 'Jean Dupont'\n", " - '\u00e2ge': 20\n", " - 'fili\u00e8re': 'Informatique'\n", "\n", "2. Modifier l'age pour qu'il soit \u00e9gal \u00e0 21\n", "\n", "3. Afficher le genre de l'\u00e9tudiant si il poss\u00e8de une telle cl\u00e9 sinon afficher un message inquant que l'on ne connait pas son genre."]}, {"cell_type": "markdown", "id": "0bf74319", "metadata": {}, "source": ["## Exercice sur les ensembles\n", "\n", "La fonction chr permet de convertir un code ASCII en un caract\u00e8re. La liste des lettres majuscules peut \u00eatre obtenue \u00e0 partir de la commande suivante : "]}, {"cell_type": "code", "execution_count": 19, "id": "f0c73a7a", "metadata": {"tags": ["keep"]}, "outputs": [], "source": ["liste_majuscules = [chr(65+i) for i in range(26)]"]}, {"cell_type": "markdown", "id": "548a21f1", "metadata": {}, "source": ["On souhaite v\u00e9rifier qu'un mot de passe entr\u00e9 par un utilisateur est sufisament compliqu\u00e9. Voici les r\u00e8gles : \n", "* Il doit contenir 12 caract\u00e8res diff\u00e9rents\n", "* Il doit contenir au moins 2 majuscules diff\u00e9rentes\n", "* Il doit contenir au moins un caract\u00e8re de ponctuation ``.,;:!?``\n", "* Il ne doit pas contenir d'espace\n", "\n", "Ecrire une fonction qui renvoie True si toutes les conditions sont v\u00e9rifi\u00e9es et False sinon"]}], "metadata": {"celltoolbar": "Tags", "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.8.8"}, "varInspector": {"cols": {"lenName": 16, "lenType": 16, "lenVar": 40}, "kernels_config": {"python": {"delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())"}, "r": {"delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) "}}, "types_to_exclude": ["module", "function", "builtin_function_or_method", "instance", "_Feature"], "window_display": false}}, "nbformat": 4, "nbformat_minor": 5}