3 Données et variables
La programmation consiste à manipuler des données. Pour accéder aux données, il est fait usage de variables. Pour le programmeur, une variable est un nom qui doit identifier la donnée manipulée.
3.1 Les données
Une donnée représente une information. Elle a un type et une valeur.
- Le type définit la nature des valeurs que peut prendre la donnée ainsi que les opérateurs qui peuvent lui être appliqués et leur effet.
- La valeur représente l’information.
Les données sont manipulées avec des instructions qui peuvent également être des symboles ou des fonctions.
3.2 Les variables
Une variable est un nom avec lequel on va manipuler une donnée. Une variable est créée par affectation.
- 1
-
Création de la variable
questionréférençant la donnée'Meaning of life' - 2
-
Création de la variable
answerréférençant la donnée42
En Python, les variables référencent des données. Une variables ne contient pas la valeur mais une référence vers une valeur.
Python est un langage non déclaratif : il n’y a pas de déclaration du type des données référencées par les variables. Une variable peut donc référencer des données de type différents au cours de son existence. Le type est déterminé dynamiquement par l’interpréteur.
Python est un langage de haut niveau qui va gérer la mémoire par un mécanisme de comptage de références. Le développeur n’a pas à se soucier de la gestion de la mémoire. Les données seront détruites lorsqu’elles ne seront plus accessibles, c’est à dire lorsqu’elles ne seront plus référencées.
- 1
- Création de la variable par affectation.
- 2
- Destruction de la variable et en conséquence de la valeur.
Une instruction peut se limiter au nom d’une variable. Il s’agit alors d’une instruction qui retourne la donnée référencée par la variable.
>>> answer = 42
>>> answer
42Une variable dans le code doit donc systématiquement être considérée comme la valeur qu’elle référence.
3.3 Règles de nommage
Les variables en Python peuvent contenir des caractères alphanumérique sans diacritique (tel que les accents, cédille…) ou souligné _ (underscore). Le premier caractère ne peut pas être un caractère numérique (de 0 à 9). Python est sensible à la casse (capitale ou minuscule).
L’expression rationnelle représentant un nom de variable Python peut s’écrire : [a-zA-Z_][a-zA-Z0-9_]
En plus de la règle de nommage, vous ne pouvez pas utiliser les mots réservés.
3.4 Conventions de codage : la PEP 8
Tout développement nécessite de s’accorder sur des conventions de codage afin de rendre l’ensemble du code lisible et maintenance. Dans l’univers Python, ces règles et conventions sont généralisés dans la PEP 8. Une PEP, pour Python Enhancement Proposal, est un document destiné à proposer une évolution du langage puis, si accepté, à documenter cette évolution. L’explication plus détaillée est publiée dans la PEP 1 et la liste de toutes les PEPs dans la PEP 0.
La PEP 8 est le document formalisant les règles de codage adoptées par la communauté. La PEP 8 propose des règles à props des variables. Elle ne concerne que la question du formatage et tient en 3 cas (plus un lié à la lisibilité) :
- Évitez les caractères l, O ou I comme nom de variable à une lettre (en général des indices) car en fonction des polices, ils ne sont pas lisibles et peuvent être confondus avec les valeurs 0 et 1.
- snake_case : lettres minuscules pour les noms de modules, variables et fonctions. Pour représenter plusieurs mots, les séparer par le caractère souligné (exemple : ma_variable).
- Lettres capitales et soulignés pour les constantes (exemple : MA_CONSTANTE)
- CamelCase (ou CapWords) pour les noms de classes (exemple: MaClasse)
Principes et conventions
Au delà des règles de formatage des noms de variables, il y a quelques principes et conventions.
Explicit is better than implicit
Python étant un langage non déclaratif, le nom des variables doit expliquer ce qu’elles contiennent. Cependant, ne laissez pas supposer du type de la donnée puisque le type peut changer.
3.5 Affecter une donnée à une variable
Le symbole égal = est l’opérateur d’affectation et permet donc d’affecter une donnée à une variable.
>>> answer = 423.6 Absence de déclaration du type
Python est un langage non-déclaratif, c’est à dire que lors de la création d’une variable, on ne déclare pas le type de donnée qui sera référencé par cette variable. La conséquence est que le type de la variable référencée par l’interpréteur pourra varier. Le type de la donnée sera défini par l’initialisation de la donnée (voir les différents types).
3.7 Manipuler et comprendre des données
Python propose plusieurs outils permettant de comprendre les variables, donc les données. Soit une variable ma_variable :
print(ma_variable)affiche la valeur référencée par la variableprint(type(ma_variable))affiche le type de la valeur référencée par la variableid(ma_variable)affiche l’identifiant unique de la donnée référencée par la variabledir(ma_variable)retourne la liste des attributs du type de la donnée référencée par la variable.help(ma_variable)affiche l’aide sur le type de la données référencée par la variable.