{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Erreurs en Python (le bug est entre la chaise et le clavier)\n", "\n", "Voici quelques erreurs que l'on peut faire en débutant Python... Certaines sont difficiles à trouver. Vos élèves les feront...\n", "\n", "\n", "## Erreur numéro 1\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Corriger l'erreur" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'imput' is not defined", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mâge\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0meval\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mimput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"entrer votre âge :\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Vous avez \"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mâge\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"ans.\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mNameError\u001b[0m: name 'imput' is not defined" ] } ], "source": [ "âge = eval(imput(\"entrer votre âge :\"))\n", "print(\"Vous avez \",âge, \"ans.\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erreur numéro 2\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Corriger l'erreur" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "ename": "SyntaxError", "evalue": "invalid syntax (, line 2)", "output_type": "error", "traceback": [ "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m2\u001b[0m\n\u001b[1;33m print(\"Il fait\",temp, \"degrés.\")\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" ] } ], "source": [ "temp = eval(input(\"entrer la température extérieure :\")\n", "print(\"Il fait\",temp, \"degrés.\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erreur numéro 3\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Corriger l'erreur" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "ename": "SyntaxError", "evalue": "EOL while scanning string literal (, line 2)", "output_type": "error", "traceback": [ "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m2\u001b[0m\n\u001b[1;33m print(\"Il fait\",temp, \"degrés.)\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m EOL while scanning string literal\n" ] } ], "source": [ "temp = eval(input(\"entrer la température extérieure :\"))\n", "print(\"Il fait\",temp, \"degrés.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erreur numéro 4\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Corriger l'erreur" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "ename": "SyntaxError", "evalue": "invalid syntax (, line 2)", "output_type": "error", "traceback": [ "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m2\u001b[0m\n\u001b[1;33m if temp < 0\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" ] } ], "source": [ "temp = eval(input(\"entrer la température extérieure :\"))\n", "if temp < 0\n", " print(\"il gèle.\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erreur numéro 5\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Corriger l'erreur" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "ename": "SyntaxError", "evalue": "invalid syntax (, line 2)", "output_type": "error", "traceback": [ "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m2\u001b[0m\n\u001b[1;33m if température = 0:\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" ] } ], "source": [ "température = eval(input(\"entrer la température extérieure en degré Celsius :\"))\n", "if température = 0:\n", " print(\"il gèle.\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erreur numéro 6\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Corriger l'erreur" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "entrer la température extérieure en degré Celsius :10\n" ] }, { "ename": "NameError", "evalue": "name 'temperature' is not defined", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mtempérature\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0meval\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"entrer la température extérieure en degré Celsius :\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mtemp\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mtemperature\u001b[0m \u001b[1;33m-\u001b[0m\u001b[1;36m32\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m1.8\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"il fait\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mtemp\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m\"degré Fahrenheit\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mNameError\u001b[0m: name 'temperature' is not defined" ] } ], "source": [ "température = eval(input(\"entrer la température extérieure en degré Celsius :\"))\n", "temp = (temperature -32)/1.8\n", "print(\"il fait\",temp,\"degré Fahrenheit\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erreur numéro 7\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Corriger l'erreur" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "ename": "IndentationError", "evalue": "expected an indented block (, line 3)", "output_type": "error", "traceback": [ "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m3\u001b[0m\n\u001b[1;33m print(température)\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mIndentationError\u001b[0m\u001b[1;31m:\u001b[0m expected an indented block\n" ] } ], "source": [ "température = 17\n", "while température !=0:\n", "print(température)\n", "température = température - 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erreur numéro 8\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Corriger l'erreur" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "ename": "IndentationError", "evalue": "unexpected indent (, line 4)", "output_type": "error", "traceback": [ "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m4\u001b[0m\n\u001b[1;33m température = température - 1\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mIndentationError\u001b[0m\u001b[1;31m:\u001b[0m unexpected indent\n" ] } ], "source": [ "température = 17\n", "while température !=0:\n", " print(température)\n", " température = température - 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erreur numéro 9\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Corriger l'erreur" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "ename": "IndentationError", "evalue": "unindent does not match any outer indentation level (, line 4)", "output_type": "error", "traceback": [ "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m4\u001b[0m\n\u001b[1;33m température = température - 1\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mIndentationError\u001b[0m\u001b[1;31m:\u001b[0m unindent does not match any outer indentation level\n" ] } ], "source": [ "température = 17\n", "while température !=0:\n", " print(température)\n", " température = température - 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erreur numéro 10\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Corriger l'erreur" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "abs() takes exactly one argument (2 given)", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# abs retourne la valeur absolue d'un nombre\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mabs\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m12\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mTypeError\u001b[0m: abs() takes exactly one argument (2 given)" ] } ], "source": [ "# abs retourne la valeur absolue d'un nombre\n", "print(abs(12,3))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erreur numéro 11\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Corriger l'erreur" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "entrer la température extérieure en degré Celsius :10\n" ] }, { "ename": "TypeError", "evalue": "unsupported operand type(s) for -: 'str' and 'int'", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mtempérature\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"entrer la température extérieure en degré Celsius :\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mtemp\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mtempérature\u001b[0m \u001b[1;33m-\u001b[0m\u001b[1;36m32\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m1.8\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"il fait\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mtemp\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m\"degré Fahrenheit\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mTypeError\u001b[0m: unsupported operand type(s) for -: 'str' and 'int'" ] } ], "source": [ "température = input(\"entrer la température extérieure en degré Celsius :\")\n", "temp = (température -32)/1.8\n", "print(\"il fait\",temp,\"degré Fahrenheit\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erreur numéro 12\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Corriger l'erreur" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "ename": "IndexError", "evalue": "list index out of range", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mpairs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m4\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m6\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m8\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m12\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m14\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m16\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m18\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m20\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpairs\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mIndexError\u001b[0m: list index out of range" ] } ], "source": [ "pairs = [2,4,6,8,10,12,14,16,18,20]\n", "print(pairs[10])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erreur numéro 13\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Corriger l'erreur" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mcompteur\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;32mwhile\u001b[0m \u001b[0mcompteur\u001b[0m \u001b[1;33m!=\u001b[0m \u001b[1;36m100\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0mcompteur\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcompteur\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;36m2\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "compteur = 1\n", "while compteur != 100:\n", " compteur = compteur + 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erreur numéro 14\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Corriger l'erreur (Attention surprise...)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "scrolled": false }, "outputs": [ { "ename": "TypeError", "evalue": "'str' object is not callable", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"bonjour\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"ça va ?\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mTypeError\u001b[0m: 'str' object is not callable" ] } ], "source": [ "print=(\"bonjour\")\n", "print(\"ça va ?\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Erreur numéro 15\n", "\n", "1. Faire fonctionner le programme pour voir l'erreur annoncée par Python\n", "2. Y a-t-il vraiment une erreur ?" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pour le \n", "moment...\n" ] } ], "source": [ "\"\"\"\n", "et voilà\n", "c'est tout !\n", "\"\"\"\n", "print(\"\"\"pour le moment...\"\"\")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }