From 798372858bd8bc319479bcfefb0d202a7d6c361b Mon Sep 17 00:00:00 2001 From: makayabou Date: Tue, 4 Aug 2020 02:11:33 +0200 Subject: [PATCH] write python introduction course --- docs/alone.md | 1 - docs/{cours.md => cours/index-back.md} | 0 docs/cours/lua/index.md | 1 + docs/cours/lua/minetest-modding.md | 0 docs/cours/network/configure.md | 0 docs/cours/network/index.md | 1 + docs/cours/outils-garage/clipperz.md | 0 docs/cours/outils-garage/framaboard.md | 0 docs/cours/outils-garage/gitlab.md | 0 docs/cours/outils-garage/index.md | 1 + docs/cours/outils-garage/keycloack.md | 0 docs/cours/outils-garage/mattermost.md | 0 docs/cours/outils-garage/nextcloud.md | 0 docs/cours/presentation-garage/equipe.md | 0 docs/cours/presentation-garage/projets.md | 0 ...association-non-lucrative.md => statut.md} | 0 docs/cours/python/1_workspace.md | 203 ++++++++++++++++++ docs/cours/python/2_rest.md | 0 docs/cours/python/3_os-script.md | 0 docs/cours/python/index.md | 14 ++ docs/cours/scripting/diag-script.md | 0 docs/cours/scripting/git.md | 0 docs/cours/scripting/semver.md | 0 docs/cours/servers/apache | 0 docs/cours/servers/glpi | 0 docs/cours/servers/index | 0 docs/cours/servers/lamp | 0 docs/cours/servers/nginx | 0 docs/cours/servers/smb | 0 docs/cours/servers/ssh | 0 docs/cours/servers/wordpress | 0 docs/cours/use-linux/cmd.md | 0 docs/cours/use-linux/index.md | 1 + docs/cours/use-linux/system.md | 0 docs/cours/work-garage/accueil.md | 0 docs/cours/work-garage/backup.md | 0 docs/cours/work-garage/diagnostic.md | 0 docs/cours/{} | 5 + docs/javascripts/config.js | 1 + mkdocs.yml | 28 +-- mkdocs.yml.bak | 12 ++ requirements.txt | 1 + 42 files changed, 256 insertions(+), 13 deletions(-) delete mode 100644 docs/alone.md rename docs/{cours.md => cours/index-back.md} (100%) create mode 100644 docs/cours/lua/index.md create mode 100644 docs/cours/lua/minetest-modding.md create mode 100644 docs/cours/network/configure.md create mode 100644 docs/cours/network/index.md create mode 100644 docs/cours/outils-garage/clipperz.md create mode 100644 docs/cours/outils-garage/framaboard.md create mode 100644 docs/cours/outils-garage/gitlab.md create mode 100644 docs/cours/outils-garage/index.md create mode 100644 docs/cours/outils-garage/keycloack.md create mode 100644 docs/cours/outils-garage/mattermost.md create mode 100644 docs/cours/outils-garage/nextcloud.md create mode 100644 docs/cours/presentation-garage/equipe.md create mode 100644 docs/cours/presentation-garage/projets.md rename docs/cours/presentation-garage/{association-non-lucrative.md => statut.md} (100%) create mode 100644 docs/cours/python/1_workspace.md create mode 100644 docs/cours/python/2_rest.md create mode 100644 docs/cours/python/3_os-script.md create mode 100644 docs/cours/python/index.md create mode 100644 docs/cours/scripting/diag-script.md create mode 100644 docs/cours/scripting/git.md create mode 100644 docs/cours/scripting/semver.md create mode 100644 docs/cours/servers/apache create mode 100644 docs/cours/servers/glpi create mode 100644 docs/cours/servers/index create mode 100644 docs/cours/servers/lamp create mode 100644 docs/cours/servers/nginx create mode 100644 docs/cours/servers/smb create mode 100644 docs/cours/servers/ssh create mode 100644 docs/cours/servers/wordpress create mode 100644 docs/cours/use-linux/cmd.md create mode 100644 docs/cours/use-linux/index.md create mode 100644 docs/cours/use-linux/system.md create mode 100644 docs/cours/work-garage/accueil.md create mode 100644 docs/cours/work-garage/backup.md create mode 100644 docs/cours/work-garage/diagnostic.md create mode 100644 docs/cours/{} create mode 100644 docs/javascripts/config.js create mode 100644 mkdocs.yml.bak diff --git a/docs/alone.md b/docs/alone.md deleted file mode 100644 index 316ebe82..00000000 --- a/docs/alone.md +++ /dev/null @@ -1 +0,0 @@ -# An alone file diff --git a/docs/cours.md b/docs/cours/index-back.md similarity index 100% rename from docs/cours.md rename to docs/cours/index-back.md diff --git a/docs/cours/lua/index.md b/docs/cours/lua/index.md new file mode 100644 index 00000000..e10b99d0 --- /dev/null +++ b/docs/cours/lua/index.md @@ -0,0 +1 @@ +# Introduction diff --git a/docs/cours/lua/minetest-modding.md b/docs/cours/lua/minetest-modding.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/network/configure.md b/docs/cours/network/configure.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/network/index.md b/docs/cours/network/index.md new file mode 100644 index 00000000..e10b99d0 --- /dev/null +++ b/docs/cours/network/index.md @@ -0,0 +1 @@ +# Introduction diff --git a/docs/cours/outils-garage/clipperz.md b/docs/cours/outils-garage/clipperz.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/outils-garage/framaboard.md b/docs/cours/outils-garage/framaboard.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/outils-garage/gitlab.md b/docs/cours/outils-garage/gitlab.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/outils-garage/index.md b/docs/cours/outils-garage/index.md new file mode 100644 index 00000000..e10b99d0 --- /dev/null +++ b/docs/cours/outils-garage/index.md @@ -0,0 +1 @@ +# Introduction diff --git a/docs/cours/outils-garage/keycloack.md b/docs/cours/outils-garage/keycloack.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/outils-garage/mattermost.md b/docs/cours/outils-garage/mattermost.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/outils-garage/nextcloud.md b/docs/cours/outils-garage/nextcloud.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/presentation-garage/equipe.md b/docs/cours/presentation-garage/equipe.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/presentation-garage/projets.md b/docs/cours/presentation-garage/projets.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/presentation-garage/association-non-lucrative.md b/docs/cours/presentation-garage/statut.md similarity index 100% rename from docs/cours/presentation-garage/association-non-lucrative.md rename to docs/cours/presentation-garage/statut.md diff --git a/docs/cours/python/1_workspace.md b/docs/cours/python/1_workspace.md new file mode 100644 index 00000000..367c426b --- /dev/null +++ b/docs/cours/python/1_workspace.md @@ -0,0 +1,203 @@ +# Configurer l'espace de travail + +## Installer python + +Python est peut-être déjà installé sur votre système, mais il faut vérifier la version: + +``` +user@host:~$ python --version +Python 3.7.3 +``` + +et la liste des versions disponibles: + +``` +user@host:~$ update-alternatives --list python +/usr/bin/python2 +/usr/bin/python3 +``` + +Pour installer la version qui vous manque: +``` +sudo apt install python2 +# OU +sudo apt install python3 +``` + +Nous avons besoin du numéro de version pour python2 et python3: +``` +user@host:~$ ls -l /usr/bin/python{2,3} +lrwxrwxrwx 1 root root 9 mars 4 2019 /usr/bin/python2 -> python2.7 +lrwxrwxrwx 1 root root 9 mars 26 2019 /usr/bin/python3 -> python3.7 +``` + +Nous allons donner la priorité 1 à python2 et la priorité 2 à python3: + +``` +sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 2 +sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 +``` + +--- + +## Installer pip + +pip (Package installer for python or "Pip Installs Packages") est un outil très utile pour gérer les dépendances dans un projet python. + +Là aussi, il y a pip pou python2 et pip pour python3, mais Debian utilisera la version correpondante à la version de python définie avec `update-alternatives`. + +``` +user@host:~$ sudo apt install python3-pip python-pip +user@host:~$ pip --version +pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7) +``` + +--- + +## Utiliser la console python + +Pour découvrir python, rien de plus simple, on saisit la commande `python` dans le terminal: + +``` +user@host:~$ python +Python 3.7.3 (default, Dec 20 2019, 18:57:59) +[GCC 8.3.0] on linux +Type "help", "copyright", "credits" or "license" for more information. +>>> +``` +Les trois chevrons `>>>` vous indiquent que vous êtes dans la console python. +Faites ++ctrl+d++ pour en sortir. + +Vous pouvez déclarer une variable, la transformer et l'afficher: + +``` +>>> MA_VARIABLE = " ceci est le contenu de ma variable " +>>> +>>> print(MA_VARIABLE) + ceci est le contenu de ma variable +>>> +>>> VAR_2 = MA_VARIABLE + " et celle-ci est plus longue" +>>> +>>> print(VAR_2) + ceci est le contenu de ma variable et celle-ci est plus longue +``` + +--- + + +## Commencer un projet + +On démarre un projet simplement en créant un dossier, dans lequel (par convention), on crée le fichier `main.py` +``` +user@host:~$ mkdir mon_projet && cd mon_projet && touch main.py +``` + +Ce fichier main.py contiendra les instructions principales du programme, et pourra appeler d'autres fichiers python. + +On met un **shebang** en 1ère ligne pour indiquer la version de python: +``` +#!/usr/bin/env python3 + +VAR_1 = " ce serpent " +print(VAR_2) +VAR_2 = VAR_1 + " est dangereux" +print(VAR_2) +``` + +On peut simplement exécuter ce script avec `python poi.py` ou l'exécuter en mode **interactif** (-i) pour continuer à manipuler les variables et les fonctions du programme: + +``` +user@host:~$ python -i poi.py + ce serpent + ce serpent est dangereux +>>> +>>> type(VAR_2) + +``` + +--- + +## Les types de variables dans python + +### Les chaînes de caractères + +Les variables que nous avons utilisées sont du type `str` ou `string`, c'est à-dire une **chaîne de caractères**. +On les déclare entre guillemets: + +``` +>>> VAR_A = " some random string, with 6 words" +>>> type(VAR_A) + +``` + +### Autres variables simples + +Il y a d'autre variables simples: + +``` +>>> VAR_B=True +>>> type(VAR_B) + # VAR_B est un `boolean`, une valeur booléenne, \ + # qui ne peut être que `True` ou `False` + +>>> VAR_C = 10 +>>> type(VAR_C) + # VAR_C est un `integer`, un nombre entier +>>> +>>> +>>> VAR_D=3.141592 +>>> type(VAR_E) + # VAR_E est un `float`, un nombre décimal +``` + +### Les listes et les tuples + +Il y a des variables qui permettent de stocker plusieurs valeurs: les **listes** ( `list`), les **tuples**, et les **dictionnaires** (`dictionary`). + +Les listes sont déclarées entre crochets ( `brackets [ ] `) et contiennent plusieurs éléments (int, str, list...) séparés par une virgule. + +``` +>>> VAR_F = ["object",150,"proc","package",2000] +>>> type(VAR_F) + +``` + +On peut modifier les éléments de la liste en les indexant entre crochets: + +``` +>>> print(VAR_F[0:2]) +['object', 150] +>>> +>>> VAR_F[1] = 250 +>>> print(VAR_F[0:2]) +['object', 250] +``` + +Les **tuples** sont des listes qu'on ne peut pas modifier. On les appelle entre parenthèses: +``` +>>> VAR_F = ( "elem1", "elem2", "elem3") +>>> +>>> print(type(VAR_F)) + +``` + +### Les dictionnaires + +Les dictionnaires sont des séries de paires clé-valeur, déclarées entre accolades ( `curly brackets { } `) + +``` +>>> VAR_G = { "name": "python", "version_number": 3.8, "use": "coding"} +>>> type(VAR_G) + +``` + +Comme pour les listes, on peut accéder aux valeurs et les modifier en indexant avec les crochets: +``` +>>> VAR_G["use"] = VAR_G["use"] + " and playing" +>>> +>>> print(VAR_G) +{'name': 'python', 'version': '3.8', 'version_number': 3.8, 'use': 'coding and playing'} +``` + + + diff --git a/docs/cours/python/2_rest.md b/docs/cours/python/2_rest.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/python/3_os-script.md b/docs/cours/python/3_os-script.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/python/index.md b/docs/cours/python/index.md new file mode 100644 index 00000000..39facc1e --- /dev/null +++ b/docs/cours/python/index.md @@ -0,0 +1,14 @@ +# Introduction + +Python est un language de programmation créé en 1991. +La version 3, actuellement utilisée dans la plupart des projets, est parue en 2008. Elle n'est pas compatible avec les anciennes versions de Python. + +Python est un language **interprété**, c'est-à-dire qu'il n'y a pas besoin de le compiler avant de l'exécuter, on peut donc travailler avec dans une **console interactive**. + +Python est un language **orienté-objet**, c'est-à-dire (selon [Wikipedia](https://fr.wikipedia.org/wiki/Python_(langage))) : +> Tous les types de base, les fonctions, les instances de classes (les objets « classiques » des langages C++ et Java) et les classes elles-mêmes (qui sont des instances de méta-classes) sont des objets. + +Python est conçu pour avoir une syntaxe lisible: +- les commentaires sont indiquées par le `#` +- les blocs sont identifiés par l'indentation (4 ++space++) + diff --git a/docs/cours/scripting/diag-script.md b/docs/cours/scripting/diag-script.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/scripting/git.md b/docs/cours/scripting/git.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/scripting/semver.md b/docs/cours/scripting/semver.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/servers/apache b/docs/cours/servers/apache new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/servers/glpi b/docs/cours/servers/glpi new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/servers/index b/docs/cours/servers/index new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/servers/lamp b/docs/cours/servers/lamp new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/servers/nginx b/docs/cours/servers/nginx new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/servers/smb b/docs/cours/servers/smb new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/servers/ssh b/docs/cours/servers/ssh new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/servers/wordpress b/docs/cours/servers/wordpress new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/use-linux/cmd.md b/docs/cours/use-linux/cmd.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/use-linux/index.md b/docs/cours/use-linux/index.md new file mode 100644 index 00000000..e10b99d0 --- /dev/null +++ b/docs/cours/use-linux/index.md @@ -0,0 +1 @@ +# Introduction diff --git a/docs/cours/use-linux/system.md b/docs/cours/use-linux/system.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/work-garage/accueil.md b/docs/cours/work-garage/accueil.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/work-garage/backup.md b/docs/cours/work-garage/backup.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/work-garage/diagnostic.md b/docs/cours/work-garage/diagnostic.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/cours/{} b/docs/cours/{} new file mode 100644 index 00000000..02d8abaf --- /dev/null +++ b/docs/cours/{} @@ -0,0 +1,5 @@ +# Introduction +# Introduction +# Introduction +# Introduction +# Introduction diff --git a/docs/javascripts/config.js b/docs/javascripts/config.js new file mode 100644 index 00000000..223ad87a --- /dev/null +++ b/docs/javascripts/config.js @@ -0,0 +1 @@ +hljs.initHighlighting() diff --git a/mkdocs.yml b/mkdocs.yml index 2ffe3931..8853261c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -6,15 +6,19 @@ theme: features: - tabs markdown_extensions: - - admonition - - pymdownx.details - - pymdownx.superfences - - pymdownx.highlight: - use_pygments: true - linenums_style: pymdownx.inline - - pymdownx.inlinehilite - - pymdownx.keys - - footnotes - - toc: - permalink: true - + - admonition + - pymdownx.details + - pymdownx.superfences + - pymdownx.highlight: + use_pygments: false + linenums_style: pymdownx.inline + - pymdownx.inlinehilite + - pymdownx.keys + - footnotes + - toc: + permalink: true +extra_javascript: + - https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js + - javascripts/config.js +extra_css: + - https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/default.min.css diff --git a/mkdocs.yml.bak b/mkdocs.yml.bak new file mode 100644 index 00000000..1e607aa3 --- /dev/null +++ b/mkdocs.yml.bak @@ -0,0 +1,12 @@ +site_name: Garage Num Doc +site_url: https://garagenum.gitlab.io/doc +site_dir: public +theme: + name: material + features: + - tabs +nav: + - Introduction: index.md + - Cours: cours.md + - Alone: alone.md + - Histoire: cours/presentation-garage/histoire.md diff --git a/requirements.txt b/requirements.txt index 61c531a9..1a747c06 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,3 +4,4 @@ mkdocs>=1.1.2 # Add your custom theme if not inside a theme_dir # (https://github.com/mkdocs/mkdocs/wiki/MkDocs-Themes) mkdocs-material>=5.4.0 +Pygments