Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
Binary file added 0 - Installation Python.pptx
Binary file not shown.
357 changes: 357 additions & 0 deletions 1-introduction.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,357 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Introduction à Python"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Créer et lancer des programmes"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Il existe de deux types de fichier pour créer des programmes en python:\n",
"- **Les fichiers scripts .py** : Ils sont légers et on peut facilement importer le contenu d'un script dans un autre script, on s'en servirra quand on développera des programes complexes qu'on voudra diviser en plusieurs fichiers comme par exemple des applications web\n",
"- **Les notebooks .ipynb** (comme ce fichier): ils permettent d'afficher directement le code utilisé, d'ajouter des commentaires complexes (titres, images, liens...). Ils sont très utilisés quand on veut explorer une base de données ou quand on veut expliquer quelque chose en intégrant du code. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Les fichiers scripts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Il suffit de créer un nouveau fichier, de lui donner un nom et d'ajouter .py à la fin (appelons le hello.py)\n",
"\n",
"On va pouvoir écrire notre premier programme à l'intérieur. "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello World\n",
"This is my first python program\n"
]
}
],
"source": [
"print(\"Hello World\")\n",
"\n",
"print(\"This is my first python program\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On décomposera plus tard ce code, on va se contenter de le lancer en appuyant sur la flèche.\n",
"Cela lance un terminal (ou une console) où on voit apparaitre ce qu'on voulait voir apparaitre.\n",
"\n",
"On a également souvent l'habitude de lancer le code directement depuis le terminal à l'aide de la commande suivante:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\"python3 hello.py\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Les notebooks"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Lancer un programme"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Faisons la même chose avec un notebook.\n",
"\n",
"Créons un fichier appelé hello.ipynb\n",
"\n",
"Un notebook est divisé en cellules. Les cellules peuvent être lancées individuellement mais partagent le même environnement (on verra plus tard quand on parlera des variables par exemple que si on déclare une variable dans une cellule, on peut y accéder dans les autres cellules)\n",
"\n",
"Dans la première cellule on peut écrire print(\"Hello World\")\n",
"\n",
"On va écrire le même programme et le lancer à l'aide de la flèche qui se trouve en haut à gauche de la cellule (print(Hello Word))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello World\n"
]
}
],
"source": [
"print(\"Hello World\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ceci est une cellule **markdown** :\n",
"- ceci est un puce"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On peut également la lancer avec le raccourci CTRL + Entrer ou Shift + Enter. Les raccourcis sont très utilisés dans les notebooks ( [voir liste des raccourcis](https://towardsdatascience.com/jypyter-notebook-shortcuts-bf0101a98330))\n",
"\n",
"Pour bien les maitriser il faut comprendre la différence entre:\n",
"- **Le mode \"edit\"** : où on va écrire du code et le lancer (Quand on est sur une cellule, il faut appuyer sur entrer pour passer en mode \"edit\", c'est la même chose que de cliquer dans une cellule)\n",
"- **Le mode \"action\"** (ou commande): permet de gérer les cellules (Quand on est dans une cellule, appuyer sur echap pour passer en mode action)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Les raccourcis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Les raccourcis les plus utiles à mon gout:\n",
"- Les deux modes confondus:\n",
" - Ctrl + Enter: lance la ou les cellules selectionnées\n",
" - Ctrl + S: enregistre \n",
" - Ctrl + F: permet de faire une recherche\n",
"- En mode \"Edit\":\n",
" - Esc: passe en mode action\n",
" - Ctrl + A: sélectionne toute la cellule\n",
" - Ctrl + Z: supprime ce qu'on vient de faire\n",
" - Ctrl + shift + Z: remet ce qu'on vient de supprimer \n",
"- En mode \"Action\":\n",
" - Enter: passe en mode Edit\n",
" - A: insert une cellule au dessus\n",
" - B: insert une cellule en dessous\n",
" - X: coupe une cellule (qu'on peut utiliser aussi pour la supprimer sinon deux fois D)\n",
" - C: copie une cellule \n",
" - V: colle une cellule\n",
" - Y: transforme une cellule Markdown en cellule Code \n",
" - M: transforme une cellule Code en cellule Markdown\n",
"\n",
"Il existe en effet deux types de cellule:\n",
"- Les cellules Code: pour écrire et lancer du code\n",
"- Les cellules Markdown: pour écrire des commentaires, des titres, ajouter des liens ou des images\n",
"\n",
"`Exercice (Utiliser les raccourcis)`: \n",
"- Créer une cellule en dessous\n",
"- Ecrivez print(\"This is my first python program\")\n",
"- Transformer cette cellule en Markdown puis de nouveau en code puis exécutez la (lancez la)\n",
"- Créer une cellule Markdown puis ajouter le commentaire \"Dans un notebook, les cellules se lancent indépendamment\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Les markdowns en détails"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On peut créer différentes choses:\n",
"- des puces\n",
"- par exemple\n",
" - et des sous-puces naturellement\n",
"\n",
"Mettre des choses en `évidence` ou en **gras**, voire *en italique* \n",
"\n",
"Créer des liens: [le lien](https://en.wikipedia.org/wiki/Python_(programming_language))\n",
"\n",
"<font color=\"red\"> Changer de couleur en s'inspirant de HTML </font>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Et insérer des images\n",
"\n",
"![image](https://interactive-examples.mdn.mozilla.net/media/cc0-images/grapefruit-slice-332-332.jpg)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Découvrir les commentaires"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nous avons vu que les markdowns permettaient de créer des commentaires, cependant ils ne sont pas accessibles dans les fichiers scripts et parfois on veut commenter différemment."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Nous sommes bien ici dans une cellule de code\n",
"Les commentaires ne s'affichent pas quand on lance le code\n"
]
}
],
"source": [
"# commentaire\n",
"# ligne\n",
"# à ligne\n",
"\n",
"print(\"Nous sommes bien ici dans une cellule de code\") # un commentaire ligne à ligne peut se mettre ici\n",
"\n",
"\"\"\" Commentaire \n",
"\n",
"\n",
"\n",
"multi ligne\"\"\"\n",
"\n",
"print(\"Les commentaires ne s'affichent pas quand on lance le code\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Autre différence entre ces deux types de commentaires\n",
"- Les commentaires ligne à ligne ne sont pas lus par python, il faut donc les utiliser en général.\n",
"- Les commentaires multi ligne sont lus par python mais pas affichés sauf dans certaines foncitons. On s'en sert généralement pour décrire une fonction, une classe ou un package"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Help on function f in module __main__:\n",
"\n",
"f(x)\n",
" cette fonction ajoute 1 à x\n",
"\n"
]
}
],
"source": [
"def f(x):\n",
" \"\"\" cette fonction ajoute 1 à x\"\"\"\n",
" # tu le savais ?\n",
" if True:\n",
" print(True)\n",
" return x +1\n",
"\n",
"help(f)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Enfin, on utilise souvent un raccourci qui permet de commenter ligne à ligne plusieurs lignes en même temps: \n",
"Ctrl + SHIFT + / ou Ctrl + shift (sur les lignes selectionnées)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**`Exercice`**: \n",
"- copier coller les règles de la pep 8 dans votre fichier script en tant que commentaire multiligne et ligne à ligne (essayez les raccourcis et relancer le script)\n",
"- copier coller les règles de la pep 8 dans une cellule code, faite le même exercice que précédemment puis copier coller dans un cellule markdown et faire une mise en page correcte"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Règles Pep8:\n",
"\n",
"Pep 8 sur les commentaires.\n",
"Ecrivez des phrases complètes, ponctuées et compréhensibles.\n",
"Le commentaire doit être cohérent avec le code.\n",
"Il doit suivre la même indentation que le code qu'il commente.\n",
"Evitez d'enfoncer des portes ouvertes : ne décrivez pas le code, expliquez plutôt à quoi il sert.\n",
"Il doit être en anglais."
]
}
],
"metadata": {
"interpreter": {
"hash": "4822798685b95d90cac6b9eac85a216cd3011e561666c6311e8088bbadca8e0f"
},
"kernelspec": {
"display_name": "Python 3.8.6 64-bit ('3.8.6': pyenv)",
"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.12"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}
Loading
Loading