{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Les notebooks Jupyter\n",
    "\n",
    "Les notebooks Jupyter sont un environnement interactif pour écrire et lancer du code. Il est possible d'utiliser une grande variété de langage dans un notebook s'ils ont été installé. Tous les notebooks de ce cours sont en python !\n",
    "\n",
    "Les notebooks s'éxécutent dans un navigateur web. À l'université Lyon 1, plusieurs solutions sont possibles :\n",
    "\n",
    "1. utiliser l'installation des notebooks sur les ordinateurs des salles de TP\n",
    "2. utiliser le serveur Jupyter de l'université à l'adresse suivante : https://jupyter.univ-lyon1.fr/"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Les cellules permettent d'écrire et d'exécuter du code\n",
    "\n",
    "Pour exécuter une cellule, plusieurs solutions sont possibles :\n",
    "\n",
    "1. Appuyer sur les touches `Maj + Entrée` (exécute et passe à la cellule suivante), `Alt + Entrée` (exécute et créer une nouvelle cellule vide à la suite), ou encore `Ctrl + Entrée` (exécute et reste sur la même cellule).\n",
    "2. Appuyer sur le bouton <i class=\"fa fa-play\" aria-hidden=\"true\"></i> de la barre d'outil juste au-dessus."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Écrire du texte\n",
    "\n",
    "En sélectionnant `Markdown` dans le menu déroulant de la barre d'outil, il est possible d'écrire du texte formatté :\n",
    "\n",
    "- *italique* ;\n",
    "- **gras** ;\n",
    "- de faire des listes numérotées ou non ;\n",
    "- d'écrire des formules mathématiques simples en Latex comme $\\sum_{n=1}^N n = \\frac{N (N+1)}{2}$.\n",
    "\n",
    "Vous pouvez regarder la source de la cellule en cliquant simplement dessus."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Gérer l'exécution du noyau\n",
    "\n",
    "Le code est lancé dans un processus séparé appelé le \"Noyau\" (Kernel en anglais). Le noyau peut être interrompu ou redémarré si besoin. Par exemple si un calcul est bloqué ou qu'il prend trop de temps.\n",
    "\n",
    "- Pour interrompre le noyau, vous pouvez appuyer sur le bouton <i class='icon-stop fa fa-stop'></i> de la barre d'outil.\n",
    "- Pour redémarrer le noyau, vous pouvez appuyer sur le bouton <i class='fa fa-repeat icon-repeat'></i> de la barre d'outil.\n",
    "\n",
    "Lorsqu'une cellule est lancée pour exécution du code, le symbole `[*]` apparaît à gauche de celle-ci. Lorsque ce calcul est fini, ce symbole est remplacé par `[n]` où `n` est un nombre entier correspondant à l'ordre d'exécution des cellules."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Obtenir de l'aide\n",
    "\n",
    "En ligne : https://docs.python.org/3/\n",
    "Hors ligne avec la fonction `help` de python ou bien le mot clé `?` des notebooks Jupyter."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Bonjour\n"
     ]
    }
   ],
   "source": [
    "s = \"Bonjour\"\n",
    "print(s)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function print in module builtins:\n",
      "\n",
      "print(...)\n",
      "    print(value, ..., sep=' ', end='\\n', file=sys.stdout, flush=False)\n",
      "    \n",
      "    Prints the values to a stream, or to sys.stdout by default.\n",
      "    Optional keyword arguments:\n",
      "    file:  a file-like object (stream); defaults to the current sys.stdout.\n",
      "    sep:   string inserted between values, default a space.\n",
      "    end:   string appended after the last value, default a newline.\n",
      "    flush: whether to forcibly flush the stream.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(print)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mDocstring:\u001b[0m\n",
       "print(value, ..., sep=' ', end='\\n', file=sys.stdout, flush=False)\n",
       "\n",
       "Prints the values to a stream, or to sys.stdout by default.\n",
       "Optional keyword arguments:\n",
       "file:  a file-like object (stream); defaults to the current sys.stdout.\n",
       "sep:   string inserted between values, default a space.\n",
       "end:   string appended after the last value, default a newline.\n",
       "flush: whether to forcibly flush the stream.\n",
       "\u001b[0;31mType:\u001b[0m      builtin_function_or_method"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print?"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.10.13"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
