|
- Expressions, instructions, et variables
- =======================================
-
- Instructions
- ------------
-
- Pour l'instant, dans tous les exemples de code, chaque ligne qu'on a écrit
- contenait une *instruction*.
-
- Un instruction a un effet sur le programe dans lequel elle est présented
-
- Par exemple, l'instruction ``print("bonjour")`` affiche "bonjour" dans
- le terminal. On dit que l'instruction est *exécutée*.
-
- En règle générale, les instructions sont éxécutées une par une, de haut en bas.
-
- Expressions
- -----------
-
- Les instructions peuvent contenir des *expressions*.
-
- Un expression est toujours *évaluée* pour retourner une
- *valeur*
-
- Par exemple, ``1 + 2`` es une expression qui renvoie la valeur ``3``
- une fois évaluée.
-
- Elle est constituée de 3 éléments:
-
- * Le *littéral* 1
- * L'*opérateur* ``+``
- * Le *littéral* 2
-
- Pour évaluer une expression, Python remplace les littéraux
- par leur valeur, puis calcule la valeur finale en
- utilisant les opérateurs.
-
- Notez que les expressions peuvent être imbriquées ::
-
- 1 + (2 * 3)
-
- À droite du plus, on a une expression ``2 + 3``. Quand Python
- évaluera l'expression, il verra d'abord le littéral ``1`` et le ``+``,
- puis il évaluera l'expression à droite (``2*3 = 6``), et finalement
- l'expression en entier (``1 + 6 = 7``).
-
- Notez que si vous écrivez une ligne contenant une *expression*,
- elle est évaluée mais rien n'est éxécuté::
-
- print("Bonjour")
- 40 + 2
- print("Au revoir")
- # Affiche: 'Bonjour' puis 'Au revoir'
-
- Ici l'expression ``40 + 2`` a été évaluée, mais Python n'a rien fait
- avec le résulat, il est simplement passé à l'instruction suivante.
-
- Variables et valeurs
- --------------------
-
- 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*::
-
- a = 2
-
- Ici on assigne l'entier 2 à la variable ``a``.
-
- Notez qu'une assignation *n'est pas* une expression, c'est une
- *instruction*.
-
- 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 n'importe qu'elle *expression* à une variable,
- et pas simplement des littéraux::
-
- a = 1 + 2
- print(a)
- # 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::
-
- a = 1
- print(a + 2) # ici a a été remplacé par 1
- # affiche: 3
-
- Notez que la valeur de variable `a` n'a pas changé::
-
- a = 1
- print(a + 2)
- # affiche: 3
- print(a)
- # affiche: 1
-
- Autres exemples::
-
- x = 1
- y = 2
- print(x+y) # ici x a été remplacé par 1 et y par 2
- # affiche: 3
-
- Changer la valeur d'une variable
- ---------------------------------
-
- On peut aussi *changer* la valeur d'une variable en assignant
- une nouvelle valeur à celle-ci::
-
-
- a = 2
- print(a)
- a = 3
- print(a)
- # affiche: 2, puis 3
-
- Combiner opération et assignation
- ----------------------------------
-
- La notation ``+=`` permet de combiner addition et assignation :
- les deux exemples ci-dessous sont équivalents::
-
- x = 3
- x = x + 1
-
- ::
-
- x = 3
- x += 1
-
-
- Cela fonctionne aussi pour ``-=``, ``/=`` etc.
-
- Nom des variables
- -----------------
-
- Ci-dessus j'ai utilisé des noms de variables à une lettre,
- mais il est préférable d'avoir des noms longs et descriptifs
-
- Aussi, la convention est de:
-
- * Les écrire en minuscules
- * De séparer les mots par des tirets bas (*underscore*)::
-
- score = 42
- âge_moyen = 22
-
- Notez que certains noms ne peuvent être utilisés comme nom
- de variables. On les appelle des *mots-clés*. La liste
- est disponible ici: https://docs.python.org/fr/3/reference/lexical_analysis.html#keywords
|