{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "# Table of Contents\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# TP 1 - Programmation pour la préparation à l'agrégation maths option info\n", "\n", "## Remarques sur le style\n", "Ici, pour vous montrer, j'ai utilisé :\n", "- En Python 3, avec des annotations de types.\n", "- Notez que ce ne sont que des annotations.\n", "- Pour plus, il faudrait utiliser [quelque chose comme `beartype`](https://stackoverflow.com/a/37961120/2809027).\n", "\n", "Notez que ce n'est absolument *pas nécessaire*, c'était juste pour montrer que ce genre d'annotations peut aider à passer de Caml à Python." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fonctions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 4" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "def successeur(i : int) -> int:\n", " assert isinstance(i, int), \"Erreur : i = {} doit etre entier.\".format(i)\n", " assert i >= 0, \"Erreur : i = {} doit etre >= 0.\".format(i)\n", " return i + 1" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "5" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "ename": "AssertionError", "evalue": "Erreur : i = 2.5 doit etre entier.", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m