{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Python Cours Accéléré - Solutions\n", "\n", "Cet exercice est facultatif, il permet de tester votre niveau Python. Les questions traitent au maximum le thème financier, mais ne vous attardez pas sur ces tâches, beaucoup d’entre elles n’ont aucune signification et n’ont pas de sens. Si vous trouvez cela extrêmement difficile, vous n'êtes probablement pas encore prêt pour le reste de ce cours et n'avez pas assez d'expérience en programmation pour continuer. Je vous suggère de prendre un autre cours plus orienté vers les débutants complets, tels que [Formation complète Python](https://www.udemy.com/course/python-datascience/?referralCode=9DB381B321631A0703C2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercices\n", "\n", "Répondez aux questions ou effectuez les exercices en gras ci-dessous, utilisez la méthode spécifique décrite le cas échéant." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice #1\n", "\n", "Soit un prix donné price = 300, utilisez python pour trouver la raciné carrée du prix." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "price = 300" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "17.320508075688775" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "price**(0.5)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "17.320508075688775" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import math\n", "math.sqrt(price)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice #2\n", "\n", "Soit la chaîne de caractères :\n", "\n", " stock_index = \"SP500\"\n", " \n", "Extraire '500' de la chaîne de caractères à l'aide de la méthode d'indexation." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "stock_index = \"SP500\"" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'500'" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock_index[2:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice #3\n", "\n", "**Soient les variables :**\n", "\n", " stock_index = \"SP500\"\n", " price = 300\n", "\n", "**Utilisez .format() pour afficher la phrase suivante :**\n", "\n", " Le SP500 est à 300 aujourd'hui." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "stock_index = \"SP500\"\n", "price = 300" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Le SP500 est à 300 aujourd'hui\n" ] } ], "source": [ "print(\"Le {} est à {} aujourd'hui\".format(stock_index,price))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice #4\n", "\n", "**Soit la variable d'un dictionnaire imbriqué avec les listes imbriquées suivantes :**\n", "\n", " stock_info = {'sp500':{'today':300,'yesterday': 250}, 'info':['Time',[24,7,365]]}\n", " \n", "**Utilisez l'indexation et les clés correspondantes pour extraire les éléments suivants :**\n", "\n", "* Le prix du SP500 d'hier (250)\n", "* Le nombre 365 imbriqué à l'intérieur d'une liste imnbriquée au niveau de la clé 'info'." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "stock_info = {'sp500':{'today':300,'yesterday': 250}, 'info':['Time',[24,7,365]]}" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['sp500', 'info'])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock_info.keys()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "250" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock_info['sp500']['yesterday']" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "365" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock_info['info'][1][2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice #5\n", "\n", "**Soient des chaînes de caractères données avec cette forme où la dernière valeur source est toujours séparée par 2 tirets --**\n", "\n", " \"PRICE:345.324:SOURCE--QUANDL\"\n", " \n", "**Créer une fonction nommée source_finder() qui retourne la source. Par exemple, la chaîne de caractères ci-dessus passée en argument dans la fonction devrait retourner \"QUANDL\"**" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "def source_finder(s):\n", " return s.split('--')[-1]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'QUANDL'" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "source_finder(\"PRICE:345.324:SOURCE--QUANDL\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice #6\n", "\n", "**Créer une fonction nommée price_finder() qui retourne True si le mot 'prix' est dans la chaîne de caractères. Votre fonction doit fonctionner même si 'Prix' commence par une majuscule ou suivi directement d'une ponctuation ('prix!')**" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "def price_finder(s):\n", " return 'prix' in s.lower()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "price_finder(\"Quel est le prix?\")" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "price_finder(\"MEC, QUEL EST LE PRIX!!!\")" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "price_finder(\"Le prix est 300\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice #7\n", "\n", "**Créer une fonction nommée count_price() qui compte le nombre de fois que le mot \"prix\" apparaît dans la chaîne de caractères. Prendre en compte la majuscule et si le mot \"prix\" est proche d'une ponctuation.**" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "def count_price(s):\n", " count = 0\n", " \n", " for word in s.lower().split():\n", " # Besoin d'utiliser in, == ne fonctionne pas avec la ponctuation\n", " if 'prix' in word:\n", " count = count + 1\n", " \n", " # Attention à l'indentation!\n", " return count" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "def count_price(s):\n", " return s.lower().count('prix')" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "s = \"Wow quel bon prix, très très bon Prix! J'ai dit prix 3 fois.\"" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "count_price(s)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice #8\n", "\n", "**Créer une fonction nommée avg_price qui prend en paramètre une liste de nombres (prix d'action) et en calcule la moyenne (somme de tous les nombres divisée par le nombre d'éléments de la liste). Cela doit retourner un décimal float.**" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "def avg_price(stocks):\n", " return sum(stocks)/len(stocks)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4.0" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "avg_price([3,4,5])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Bon Travail!" ] } ], "metadata": { "anaconda-cloud": {}, "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.7.7" } }, "nbformat": 4, "nbformat_minor": 1 }