Variables et Affectation
Apprentissage des variables et des différents types de données en Python.
Introduction
Les variables sont des conteneurs qui permettent de stocker des données en mémoire. Elles sont essentielles dans tout programme informatique.
Analogie
Une variable c'est comme une boîte avec une étiquette. On met une valeur dans la boîte, et on peut la récupérer grâce à l'étiquette.
Note
Comme d'habitude, si vous n'avez pas ou la flemme de créer un environnement python :
Données et variables
L'essentiel du travail effectué par un programme d'ordinateur consiste à manipuler des données. Ces données peuvent être diverses, mais dans la mémoire de l'ordinateur, elles se ramènent toujours en définitive à une suite finie de nombres binaires.
Pour pouvoir y accéder, le programme fait usage de variables de différents types.
Important
- Une variable apparaît dans la majorité des langages de programmation sous un nom de variable quelconque, mais pour l'ordinateur, il s'agit d'une référence désignant une adresse mémoire, c'est-à-dire un emplacement précis dans la mémoire vive.
- À cet emplacement est stockée une valeur bien déterminée, c'est la donnée qui est stockée sous la forme d'une suite de nombres binaires.
Convention de nommage
| Règle | Correct | Incorrect |
|---|---|---|
| Minuscules | mon_nom | monNom |
| Pas d'espace | age_utilisateur | age utilisateur |
| Pas de chiffre au début | age1 | 1age |
| Pas de mot réservé | print_ | print |
Bonnes pratiques
Utilisez le snake_case : mon_nom_de_variable
Affectation (ou assignation) d'une variable
Nous allons voir à présent comment définir une variable et lui affecter une valeur.
Les termes "affecter une valeur" ou "assigner une valeur" à une variable sont équivalents. Ils désignent l'opération par laquelle on établit un lien entre le nom de la variable et sa valeur.
- En Python comme dans beaucoup d'autres langages de programmation, l'opération d'affectation est représentée par le signe égal (
=)
>>> nom = "Alex" # affecter la valeur "Alex" à nom
>>> age = 25 # définir la variable "age" et lui donner la valeur 25
>>> taille = 1.75 # assigner sa valeur à la variable "taille"
Les exemples ci-dessus montrent des instructions d'affectation Python. Après qu'on les a exécutées, elles existent dans la mémoire de l'ordinateur, à des endroits différents :
- 3 noms de variables :
nom,ageettaille. - 3 séquences d'octets où sont encodées les valeurs des variables.
A savoir
-
Ces 3 instructions ont pour effet de réaliser plusieurs actions dans la mémoire de l'ordinateur :
- Créer et mémoriser un nom de variable.
- Attribuer un type bien déterminé.
- Créer et mémoriser une valeur particulière.
- Établir un lien (par un système de pointeur) entre le nom de la variable et l'emplacement mémoire de la valeur correspondante.
Info
Les trois noms de variables sont des références.
Typage des variables
En Python, il n'est pas nécessaire de préciser le type de variables avant de pouvoir les utiliser. Il suffit d'assigner une valeur à un nom de variable avant de pouvoir l'utiliser:
- On dit alors que celle-ci est automatiquement créée avec le type qui correspond au mieux à la valeur fournie.
De plus on dira que le typage des variables sous Python est dynamique, par opposition au typage statique qui est de mise en C ou C++.
A savoir
- Le typage statique est préférable dans les langages compilés tels que le
C. Il permet l'opération de compilation.
- Le typage dynamique permet d'écrire plus aisément des constructions logiques de niveaux élevés, en particulier dans le contexte de la programmation orienté objet.
Affectation Multiple
Python nous permet d'assigner une valeur à plusieurs variables simultanément :
On peut aussi faire des affectations parallèles :
Dans cet exemple, les variables
aetbprennent respectivement les valeurs4et1.33
Opérateurs et expressions
On manipule les valeurs et les variables qui les référencent en les combinant avec des opérateurs pour former des expressions :
- Ici, nous commençons à affecter aux variables
aetbdeux valeurs distinctes,7.3et12. - La seconde ligne consiste à affecter à une nouvelle variable
yle résultat d'une expression qui combine les opérateurs*,+et/avec les opérandesa,b,3et5.
Symboles spéciaux utilisés pour représenter les opérations mathématiques.
Ce sont les valeurs combinées à l'aide des opérateurs
1. Liste des opérateurs logiques
| Opérateur | Description | Exemple | Résultat |
|---|---|---|---|
+ | Addition | 5 + 3 | 8 |
- | Soustraction | 10 - 4 | 6 |
* | Multiplication | 3 * 7 | 21 |
/ | Division | 15 / 4 | 3.75 |
// | Division entière | 15 // 4 | 3 |
% | Modulo (reste) | 15 % 4 | 3 |
** | Exponentiation | 2 ** 3 | 8 |
2. Priorité des opérations
Lorsqu'il y a plus d'un opérateur dans une expression, l'ordre dans lequel les opérations doivent s'effectuer suit un schéma précis, on appelle ça les règles de priorités. En Python, elles sont les mêmes que celles qui sont appliquées en mathématique.
À connaître
Pour les mémoriser à l'aide d'un moyen mnémotechnique, l'acronyme PEMDAS:
Ppour parenthèse. Ce sont elles qui ont la plus haute priorité. Elles permettent de "forcer" l'évaluation d'une expression dans l'ordre souhaité.- Ainsi:
2 * (3 - 1) = 4, et(1 + 1) ** (5 - 2) = 8
- Ainsi:
Epour exposants. Ils sont évalués ensuite, avant les autres opérations.- Ainsi:
2 ** 1 + 1 = 3(et non 4), et3 * 1 ** 10 = 3(et non 59049).
- Ainsi:
MetDpour multiplication et division. Elles ont la même priorité. Elles sont evaluées avant additionAet la soustractionS, ces dernières étant effectuées en dernier lieu.- Ainsi:
2 * 3 - 1 = 5(et non 4), et2 / 3 - 1 = -0.33333...(et non 1.0).
- Ainsi:
- Si deux opérateurs ont la même priorité, l'évaluation est effectuée de gauche à droite.
- Ainsi dans:
59 * 100 // 60, la multiplication se fait en première, suivi de la division.
- Ainsi dans:
Composition
Une des grandes forces d'un langage de programmation de haut niveau est qu'il permet de construire des instructions complexes par assemblage de plusieurs instructions. Par exemple, on sait comment additionner deux nombres et comment afficher une valeur, on peut donc combiner ses instructions en une seule :
Cette fonctionnalité va permettre de programmer des algorithmes complexes de façon claire et concise :
>>> h, m, s = 15, 27, 34
>>> print("nombre de secondes écoulé depuis minuit = ", h * 3600 + m * 60 + s)
nombre de secondes écoulé depuis minuit 55654
Attention
Il y a une limite à ce que l'on peut combiner : Dans une expression, ce qui est placé à gauche du signe égal est toujours une variable, et non une expression.
- En programmation le signe égal (
=) est un symbole d'affectation et non un symbole d'égalité.- Exemple: l'instruction
m + 1 = best fausse.
- Exemple: l'instruction
- Par contre, écrire
a = a + 1est très fréquent en programmation. Cela signifie "augmenter la valeurade 1" ou encore "incrémentera".
Constantes
Une constante est une variable dont la valeur ne doit pas changer. Python n'a pas de vraies constantes, mais par convention :
Important
Par convention, les constantes s'écrivent en MAJUSCULES.
Commentaires
Les commentaires sont extrêmement utiles dans la majorité des langages de programmation. Dans les programmes plus longs et complexes, il est recommandé d'ajouter des notes expliquant la démarche que l'on a suivie.
Note
Un commentaire permet d'écrire des notes dans un programme sans que cela affecte ce dernier.
Comment écrire des commentaires
Dans Python, le croisillon (#) désigne un commentaire, l'interpréteur Python ignore tout ce qui suit ce caractère.
Pour un commentaire sur plusieurs lignes: