Variables et affectation

 

Comme tout langage, Python permet de manipuler des données grâce à un vocabulaire de mots réservées et grâce à des types de données. Il utilise des identifiants pour nommer ses objets.

Un identifiant Python valide est une suite non vide de caractères, de longueur quelconque, formée d’un caractère de début et de zéro ou plusieurs caractères de continuation, sachant que :

– un caractère de début peut être n’importe quelle lettre,
– un caractère de continuation est un caractère de début, un chiffre ou un point.

Attention :

Les identifiants sont sensibles à la casse (majuscules ou minuscules) et ne doivent pas être un mot clé réservé de Python tel que :

and; del; from; None; True; as; elif; global; nonlocal; try; assert; else; if; not; while; break; except; import; or; with; class; False; in; pass; yield; continue; finally; is; raise; def; for; lambda; return.

 

. Les principaux types de données

Il existe différents types de données : le type entier (int), le type nombre à virgule (float), le type Booléen (bool), le type chaîne de caractères (str), …

– Le type int :

Il représente les nombres entiers. Le type int n’est limité en taille que par la mémoire de la machine.

Les entiers sont décimaux par défaut, mais on peut aussi utiliser les bases binaire, octale ou hexadécimale.

On peut effectuer les opérations arithmétiques classiques avec des données de type int :

20 + 3           # 23

20 – 3            # 17

20 * 3           # 60

20 ** 3         # 8000

20 / 3            # 6.666666666666667

20 // 3          # 6    (division entière)

20 % 3          # 2     (modulo)

abs(3 – 20)   # 17   (valeur absolue)

 

– Le type float :

Un float est un nombre décimal à virgule noté avec un point décimal ou en notation exponentielle :

2.718

.02

3e8

6.023e23

Les flottants supportent les mêmes opérations que les entiers.

L’import du module math autorise toutes les opérations mathématiques usuelles :

import math

print(math.sin(math.pi/4))                          # 0.7071067811865475

print(math.degrees(math.pi))                     # 180.0

print(math.factorial(9))                                # 362880

print(math.log(1024, 2))                              # 10.0

 

–  Le type bool :

Une donnée de type bool à deux valeurs possibles : False et True.

Les opérations logiques et de comparaisons sont évaluées afin de donner des résultats booléens False et True :

– Opérateurs de comparaison : ==, !=, >, >=, < et <= :

2 > 8                  # False

2 <= 8 < 15       # True

– Opérateurs logiques: not, or et and.

(3 == 3) or (9 > 24)            # True

(9 > 24) and (3 == 3)         # False

 

–  Le type str :

Le type de données str représente une séquence de caractères entre guillemets simple (apostrophes) ou double ce qui permet d’inclure une notation dans l’autre :

. guillemets = ” L’eau vive ”

. apostrophes = ‘ Forme ”avec des apostrophes” ‘

 

. Les variables

On utilise les variables pour stocker des données. Une variable est un identifiant associé à une valeur. Informatiquement, c’est une référence d’objet située à une adresse mémoire.

On affecte une variable par une valeur en utilisant le signe = (qui n’a rien à voir avec l’égalité en math !). Dans une affectation, le membre de gauche reçoit le membre de droite ce qui nécessite d’évaluer la valeur correspondant au membre de droite avant de l’affecter au membre de gauche.

Exemple en mode interactif :

. L’exécution de la première ligne crée une variable nommée pi contenant la valeur réelle 3.1415.

. L’exécution de la deuxième ligne crée une variable nommée R contenant la valeur entière 3.

. L’exécution de la troisième ligne crée une variable nommée Adisc contenant le résultat du calcul pi*R².

Pour afficher la valeur d’une variable, il suffit de taper son nom puis d’appuyer sur la touche Entrée ou bien taper print(Nom_de_la_variable) :

La valeur d’une variable, comme son nom l’indique, peut évoluer au cours du temps (la valeur antérieure est perdue) :

Ceci est résumé dans le schéma suivant, où les cercles représentent les identificateurs (variables) alors que les rectangles représentent les données.

Les affectations relient les identificateurs aux données : si une donnée en mémoire n’est plus reliée, le ramasse-miettes (garbage collector) de Python la supprime automatiquement :

 

Outre l’affectation simple, on peut aussi utiliser les formes suivantes :

# affectation simple
v = 4

# affectation augmentée
v += 2 # idem à : v = v + 2 si v est déjà référencé

# affectation de droite à gauche
c = d = 8 # cibles multiples

# affectations parallèles d’une séquence
e, f = 2.7, 5.1 # tuple
g, h, i = [‘G’, ‘H’, ‘I’] # liste
x, y = coordonneesSouris() # retour multiple d’une fonction

Avec Python, il n’est pas nécessaire de définir préalablement le type de la variable. Le typage se fait automatiquement lors de l’affectation d’une valeur à la variable :

Exemples :

a= »Hello World ! »
>>> b=3
>>> c=2.5
>>> d=[7,3,145]
>>> e=False
>>>

– La variable a contient une chaîne de caractères, elle sera de type str.

Dès que la valeur d’affection d’une variable est entre guillemets, la variable sera du type « chaîne de caractères » (str). Par exemple, si vous saisissez a=“3“ (ou a=’3’), la variable a est du type chaîne de caractères et la valeur de a n’est pas considérée comme un nombre mais comme du texte (effectuer l’opération a+2 n’aurait aucun sens !) .

– La variable b contient un entier, elle sera de type int.

– La variable c contient un nombre à virgule, elle sera de type float.

– La variable d contient une liste, elle sera du type list.

– La variable e contient un booléen, elle sera du type bool (une variable de type bool peut prendre 2 valeurs True ou False).

Pour connaître le type d’une variable il suffit de taper type(nom_de_la_variable) :