Ajout aussi d'une explication sur les concepts d'"instruction" et d"expression".master
| @@ -6,13 +6,12 @@ Apprendre la programmation en partant de rien, en utilisant Python et la ligne d | |||||
| Pourquoi Python? | Pourquoi Python? | ||||
| ---------------- | ---------------- | ||||
| * Excellent langage pour débuter | |||||
| * Excellent langage pour débuter - il a d'ailleurs été créé avec cet objectif en tête | |||||
| * Mon langage préféré | * Mon langage préféré | ||||
| * Vraiment cross-platform (sauf pour le mobile) | |||||
| * Facile à installer quelque soit le système d'exploitation (Linux, macOS, Windows) | |||||
| Pourquoi la ligne de commande? | Pourquoi la ligne de commande? | ||||
| ------------------------------ | ------------------------------ | ||||
| Interface universelle | |||||
| La plus simple à utiliser (en Python en tout cas) | |||||
| C'est un interface universelle. Pour faire des programmes en lignes de commande, | |||||
| on n'a juste besoin de manipuler du *texte*, et c'est le plus simple au début. | |||||
| @@ -13,11 +13,30 @@ Pourquoi la ligne de commande? | |||||
| Les bases | Les bases | ||||
| ---------- | ---------- | ||||
| On tape un commande, on appuie sur entrée, l'ordinateur interprète ce qui a été tapé et affiche un message: | |||||
| Les lignes de commandes sont à taper dans un *terminal*. | |||||
| * `cd chemin/vers/fichier` | |||||
| * `ls` (ou `dir` sous Windows) | |||||
| * `pwd` | |||||
| * Sur linux, vous en avez probablement un insallé par défaut. | |||||
| * Sur macOS, il se trouve dans `Applications/Utilitaires` | |||||
| * Sum Windows, il se lance en tapant ``cmd.exe`` | |||||
| * Le premier mot est une *commande*, les autres mots sont des *arguments* | |||||
| Dans tous les cas, cela ressemble à ceci: | |||||
| .. image:: /img/terminal.png | |||||
| Notez le petit bout de texte avant le curseur : on appelle ça | |||||
| une *invite* de commande (``prompt`` en anglais). | |||||
| Pour lancer une commande, on tape son nom, suivi parfois d'un certain | |||||
| nombre de mots séparés par des espaces, puis on appuie sur entrée. | |||||
| Par exemple, on peut utiliser ``ls`` (ou ``dir``) sous Windows pour lister | |||||
| le contenu du répertoire courant: | |||||
| .. image:: /img/terminal-ls.png | |||||
| Et on peut utiliser ``cd`` suivi du nom d'un répertoire pour changer de répertoire | |||||
| courrant: | |||||
| .. image:: /img/terminal-cd.png | |||||
| Notez que l'invite de commande a changé. | |||||
| @@ -59,8 +59,6 @@ Revenons sur ce qu'il s'est passé : nous avions le mot `print` avec des parenth | |||||
| et quelque chose à l'intérieur des parenthèses, et ceci a provoqué l'affichage | et quelque chose à l'intérieur des parenthèses, et ceci a provoqué l'affichage | ||||
| du contenu des parenthèses dans le terminal. | du contenu des parenthèses dans le terminal. | ||||
| C'est *la* principale façon d'intéragir avec du code Python : on peut demander | |||||
| à l'interpréteur d'afficher n'importe quel valeur. | |||||
| Commentaires | Commentaires | ||||
| ------------ | ------------ | ||||
| @@ -75,17 +75,3 @@ et on peut utiliser des parenthèses pour grouper les opérations:: | |||||
| print((1 + 2) * 3) | print((1 + 2) * 3) | ||||
| # affiche: 9 | # affiche: 9 | ||||
| Combiner opération et assignation | |||||
| ---------------------------------- | |||||
| La notation ``+=`` permet de combiner addition et assignation:: | |||||
| x = 3 | |||||
| x = x + 1 | |||||
| print(x) | |||||
| # affiche :: 4 | |||||
| x = 3 | |||||
| x += 1 | |||||
| print(x) | |||||
| # affiche :: 4 | |||||
| @@ -1,22 +1,86 @@ | |||||
| Variables | Variables | ||||
| ========= | ========= | ||||
| Expressions | |||||
| ----------- | |||||
| Un peu de vocabulaire avant de continuer. | |||||
| Quand on écrit ``1 + 2`` en Python, on a ce qu'on | |||||
| appelle une *expression* - | |||||
| Un expression est toujours *évaluée* pour retourner une | |||||
| *valeur* (ici 3) | |||||
| Quand on écrit ``print(1 + 2)`` on a une *instruction*. | |||||
| Un instruction ne renvoie pas de valeur, mais a un | |||||
| effet sur le programme, ici l'affichage de la valeur | |||||
| de l'expression évaluée dans le terminal. | |||||
| Enfin, l'expression ``1 + 2`` est constituée de trois | |||||
| éléments: | |||||
| * Le *litéral* 1 | |||||
| * L'*opérateur* ``+`` | |||||
| * Le *litéral* 2 | |||||
| Pour évaluer une expression, Python remplace les litéraux | |||||
| par leur valeur, puis calcule la valeur finale en | |||||
| utilisant les opérateurs. | |||||
| Variables et valeurs | |||||
| -------------------- | |||||
| On peut associer des *variables* à des *valeurs* en les plaçant | On peut associer des *variables* à des *valeurs* en les plaçant | ||||
| de part et d'autre du signe `=`: on appelle cette opération | |||||
| une *assignation*. | |||||
| de part et d'autre du signe ``=`` : on appelle cette opération | |||||
| une *assignation*:: | |||||
| Ensuite, on peut utiliser la variable à la place de sa valeur: | |||||
| à chaque fois que l'interpréteur essaye d'exécuter du code, | |||||
| il commence par remplacer les variables par leurs valeurs:: | |||||
| a = 2 | a = 2 | ||||
| Notez qu'une assignation *n'est pas* une expression, c'est une | |||||
| *instruction*. | |||||
| On dit aussi que ``a`` est une *référence* vers la valeur ``2``. | |||||
| Si plus tard dans le code, on utilise le nom de la variable, | |||||
| tout se passera comme si nom de la variable avait été | |||||
| remplacé par sa valeur:: | |||||
| a = 2 | |||||
| print(a) | |||||
| # affiche: 2 | |||||
| Variables et expressions | |||||
| ------------------------- | |||||
| En fait, on peut assigner une variable à n'importe quelle | |||||
| *expression*, et pas simplement des littéraux:: | |||||
| a = 1 + 2 | |||||
| print(a) | print(a) | ||||
| # affiche: 2 | |||||
| # affiche: 3 | |||||
| Variables et expressions contenant d'autres variables | |||||
| ------------------------------------------------------ | |||||
| Les expressions peuvent également contenir des variables. | |||||
| Quand Python évalue une expression qui contient des noms de variables, | |||||
| il remplace celles-ci par leur valeur:: | |||||
| x = 1 | |||||
| y = 2 | |||||
| z = x + y | |||||
| print(z) | |||||
| # affiche: 3 | |||||
| b = 3 | |||||
| print(a + b) | |||||
| # affiche: 5 | |||||
| Ici on a créé ``z`` en *évaluant* l'expression ``x+y``. | |||||
| Changer la valeur d'une variable | |||||
| --------------------------------- | |||||
| On peut aussi *changer* la valeur d'une variable en l'assignant | On peut aussi *changer* la valeur d'une variable en l'assignant | ||||
| à une nouvelle valeur:: | à une nouvelle valeur:: | ||||
| @@ -24,12 +88,27 @@ On peut aussi *changer* la valeur d'une variable en l'assignant | |||||
| a = 2 | a = 2 | ||||
| print(a) | print(a) | ||||
| # affiche: 2 | |||||
| a = 3 | a = 3 | ||||
| print(a) | print(a) | ||||
| # affiche: 3 | |||||
| # affiche: 2, puis 3 | |||||
| Combiner opération et assignation | |||||
| ---------------------------------- | |||||
| La notation ``+=`` permet de combiner addition et assignation:: | |||||
| x = 3 | |||||
| x = x + 1 | |||||
| print(x) | |||||
| # affiche :: 4 | |||||
| x = 3 | |||||
| x += 1 | |||||
| print(x) | |||||
| # affiche :: 4 | |||||
| Cela fonctionne aussi pour ``-=``, ``/=`` etc. | |||||
| Nom des variables | Nom des variables | ||||
| ----------------- | ----------------- | ||||
| @@ -47,7 +47,7 @@ Concaténation | |||||
| ------------- | ------------- | ||||
| On peut construire de longues chaînes de caractères en | On peut construire de longues chaînes de caractères en | ||||
| en concaténatant de plus petites:: | |||||
| en concaténatant de plus petites, avec l'opérateur ``+``:: | |||||
| name = "John" | name = "John" | ||||
| message = "Bonjour " + name + " !" | message = "Bonjour " + name + " !" | ||||
| @@ -7,13 +7,13 @@ d'un côté et un entier de l'autre:: | |||||
| a = 42 | a = 42 | ||||
| b = 4 | b = 4 | ||||
| a + b # ok | |||||
| c = a + b # ok | |||||
| salutation = "bonjour, " | salutation = "bonjour, " | ||||
| prénom = "Bob" | prénom = "Bob" | ||||
| salutation + prénom # ok | salutation + prénom # ok | ||||
| message = "La réponse est " + a | |||||
| résultat = a + prénom | |||||
| # affiche: | # affiche: | ||||
| # TypeError: can only concatenate str (not "int") to str | # TypeError: can only concatenate str (not "int") to str | ||||
| @@ -32,14 +32,11 @@ Entier vers string | |||||
| ++++++++++++++++++ | ++++++++++++++++++ | ||||
| On peut convertir un entier en string en utilisant le mot ``str`` et des parenthèses | On peut convertir un entier en string en utilisant le mot ``str`` et des parenthèses | ||||
| autour de la variable ou de la valeur:: | |||||
| autour de l'expression:: | |||||
| message = "La réponse est: " + str(42) | |||||
| print(message) | |||||
| # affiche: La réponse est 42 | |||||
| réponse = 42 | |||||
| message = "La réponse est: " + str(42) | |||||
| x = 40 | |||||
| y = 2 | |||||
| message = "La réponse est: " + str(x + y) | |||||
| print(message) | print(message) | ||||
| # affiche: La réponse est 42 | # affiche: La réponse est 42 | ||||
| @@ -1,25 +1,19 @@ | |||||
| Booléens et conditions | |||||
| ====================== | |||||
| Booléens | |||||
| ======== | |||||
| En Python, les variables ``True`` et ``False`` sont toujours définies | |||||
| et servent à représenter une valeur vraie ou fausse. | |||||
| On appelle *booléenne* une valeur qui peut être soit vraie, soit fausse. | |||||
| (Notez qu'elles commencent par une majuscule) | |||||
| En Python, les littéraux ``True`` et ``False`` représentent respectivement les valeurs | |||||
| vraies et fausses. | |||||
| Assignation | |||||
| ----------- | |||||
| On peut assigner des variables à True ou False:: | |||||
| la_terre_est_plate = False | |||||
| python_c_est_genial = True | |||||
| (Notez qu'ils commencent par une majuscule) | |||||
| Comparaisons | Comparaisons | ||||
| ------------ | ------------ | ||||
| Certaines opérations renvoient des booléens: | |||||
| Certaines expressions renvoient des booléens, c'est à dire | |||||
| soit la valeur ``True``, soit la valeur ``False`` | |||||
| +------+-----------------------------+ | +------+-----------------------------+ | ||||
| |``=`` | égal | | |``=`` | égal | | ||||
| @@ -35,7 +29,7 @@ Certaines opérations renvoient des booléens: | |||||
| |``<=``| inférieur | | |``<=``| inférieur | | ||||
| +------+-----------------------------+ | +------+-----------------------------+ | ||||
| Par example:: | |||||
| Par exemple:: | |||||
| a = 2 | a = 2 | ||||
| b = 3 | b = 3 | ||||
| @@ -20,7 +20,6 @@ remarques. | |||||
| 01-introduction/index | 01-introduction/index | ||||
| 02-premiers-pas/index | 02-premiers-pas/index | ||||
| 03-variables-et-types/index | 03-variables-et-types/index | ||||
| 04-booléens/index | |||||
| 05-flot-de-controle/index | 05-flot-de-controle/index | ||||
| 06-fonctions-01/index | 06-fonctions-01/index | ||||
| 07-listes/index | 07-listes/index | ||||