#Python : Déclarer une variable et lui affecter une valeur

Cet article est archivé dans la rublique Le langage Python.

1. Définition d’une variable

Le travail d’un ordinateur, c’est de manipuler des données qui sont stockées dans sa mémoire. Or, pour cela, il faut un minimum d’organisation. C’est la raison pour laquelle les ordinateurs utilisent des variables, lesquelles correspondent à des adresses mémoire bien précises  où sont stockées les données.

Une variable, c’est donc avant tout une adresse mémoire mais c’est également un endroit que l’on réserve dans la mémoire de l’ordinateur. Lorsqu’on déclare une variable, on créé un petit tiroir sur lequel on colle une étiquette (qui correspond au nom de la variable) et dans lequel on stocke une valeur.

2. Les différents types de variables

Les variables peuvent stocker des données de différents types :

  • des nombres entiers  qui correspondent au type int (integer en anglais)
  • des nombres décimaux qui correspondent au type float.
  • des strings (c’est-à dire des chaînes de caractères en français) qui correspondent au type str.
  • des booléens qui correspondent au type bool.
  • des listes qui correspondent au type list.
  • des tuples qui correspondent au type tuple.
  • des dictionnaires qui correspondent au type dict.

Dans un premier temps, découvrons ensemble les trois premiers types, c’est-à dire les nombres entiers, les nombres décimaux et les chaînes de caractères.

Le typage dynamique

Python est un langage dont le typage est dynamique. Cela signifie que c’est l’ordinateur, et non pas le programmeur, qui se charge de « typer » les variables.

Le typage d’une variable consiste à associer à cette dernière un type de donnée, permettant à l’ordinateur de savoir si celle-ci est un nombre entier, un nombre décimal ou une chaîne de caractères. Le typage permet d’allouer des zones de mémoire de dimension suffisante pour stocker cette donnée, et éventuellement de vérifier que les manipulations programmées sur cette variable (opérations mathématiques, traitement de texte, etc.) sont cohérentes avec son type. En effet, il n’est pas possible d’additionner un nombre entier avec une chaîne de caractères.

Dans certains langages, comme le langage C, le programmeur doit typer lui-même la variable au moment de sa déclaration :

int nombre = 13;

En Python, nul besoin de se préoccuper du typage au moment de déclarer une variable. Cependant, pour la bonne exécution du programme, il est parfois nécessaire de modifier en cours de route le type d’une variable.

Déclarer une variable et lui affecter une valeur

Pour déclarer une variable, rien de plus simple, il suffit de lui donner un nom et de lui affecter une valeur. Par exemple, je déclare la variable n et je lui affecte le nombre entier 13 :

n = 13

Dans les entrailles de votre ordinateur, un tiroir s’est ouvert et un lutin numérique y a glissé le nombre entier 13. Maintenant, à chaque fois que j’appelle la variable n, le nombre entier 13 apparaît.  Notez bien que le signe = n’est pas un symbole d’égalité arithmétique mais un signe d’affectation, c’est-à dire que si j’ai envie d’affecter une autre valeur à la variable n, je peux le faire comme bon me semble. Tiens, d’ailleurs je le fais :

n = 7

Le langage Python est sensible à la casse, c’est-à dire que n est différent de N. Une variable que vous avez baptisée nombre_7, est différente de la variable Nombre_7. Dans vos noms de variables, vous pouvez utiliser toutes les lettres combinées à tous les chiffres mais vous ne pouvez pas utiliser d’accents ni de caractères spéciaux! Vous ne pouvez utiliser que le tiret « underscore » : _

En outre, vous ne pouvez pas commencer par un chiffre. Par exemple, 7nombre va vous retourner une exception, c’est à dire une erreur, et le programme ne s’exécutera pas.

SyntaxError : invalid syntax

Les variables de type int et float

Il est tout à fait possible d’effectuer des opérations arithmétiques entre des variables de type int et des variables de type float. Dans ce cas, le résultat retourné est un nombre décimal.

Je déclare deux variables et je leur affecte deux valeurs différentes :

a = 5
b = 8.7

Notez que pour les nombres décimaux, c’est la notation anglo-saxonne qui s’applique, c’est-à dire que le point remplace la virgule. En programmation, il n’existe pas de nombres à virgule!

Je peux tout aussi bien les déclarer sur la même ligne en les séparant par des virgules :

a, b = 5, 8.7

Je peux également inverser les valeurs de ces deux variables en écrivant :

a, b = b, a

Maintenant, si je fais print(a + b), qu’est-ce qui s’affiche?

print(a + b)

13.7

print() est la fonction qui permet d'afficher le contenu d'une variable ou le résultat d'une expression.

Je peux aussi déclarer une variable comme cela

c = a * 2

J’appelle c, Quelle est la valeur qui s’affiche?

17.4

Dans ce deuxième exemple, je n'utilise pas la fonction print() et pourtant le résultat s'affiche! C'est tout à fait normal car le terminal interactif Python 3 permet de se passer de print(). Toutefois, je vous invite à utiliser systématiquement print() car dans des programmes plus élaborés, cette fonction est nécessaire pour afficher un résultat en console et dénicher une erreur. 

Il vous sera aussi très utile d’incrémenter une variable. L’incrémentation est l’opération qui consiste à ajouter 1 (ou une autre valeur entière) à un compteur. Elle est utilisée dans les boucles d’itération :

c = 17.4
c = c + 1

Mais nous pouvons utiliser une autre syntaxe plus concise qui revient exactement au même :

c += 1
print(c)

c = 18.4

La décrémentation est l’opération inverse :

c -= 1
print(c)

c = 17.4

Les variables de type str

On peut affecter à une variable une chaîne de caractères (string). Pour ce faire, il faut que cette dernière soit entourée de guillemets ou d’apostrophes :

sport = "rugby"
prenom = 'Jérôme'

Comme on le voit dans le deuxième exemple, on ne peut pas utiliser de lettres accentuées dans le nom de la variable (prenom) mais la chaîne de caractères peut contenir n’importe quelle lettre accentuée (Jérôme) pourvu que l’encodage soit en utf-8.

Il est possible d’additionner deux chaînes de caractères. Cette opération s’appelle la concaténation. Exemple :

phrase = prenom + " aime le " + sport
print(phrase)

Jérôme aime le rugby

Il existe également une autre possibilité qui affiche le même résultat :

print(prenom, "aime le", sport)

Jérôme aime le rugby

J’utilise la fonction print() en séparant les arguments par des virgules. Par défaut, la fonction affiche les trois arguments en les séparant par un espace ce qui explique que je n’ai pas rajouté d’espaces autour de la chaîne de caractères "aime le" contrairement au premier exemple (" aime le ").

Il est possible de multiplier une chaîne de caractères.

print(prenom * 4)

JérômeJérômeJérômeJérôme

Changer le type d’une variable

prenom est une variable qui stocke une chaîne de caractères ("Jérôme") tandis que b est une variable qui stocke un nombre entier(5). Pour s’en assurer, il suffit d’utiliser la fonction type() :

print(type(prenom))
print(type(b))

Je déclare une nouvelle variable et je lui affecte la chaîne de caractères "9".

chiffre = "9"

Il ne s’agit pas d’un nombre entier mais bien d’une chaîne de caractères puisque je l’ai entourée de guillemets! Maintenant, essayons d’additionner b + chiffre et voyons ce que cela donne :

print(b + chiffre)

TypeError: unsupported operand type(s) for +: 'int' and 'str'

En clair, cela signifie : « Vous ne pouvez pas additionner un nombre entier  avec une chaîne de caractères! » Il est également impossible d’additionner un nombre décimal avec une chaîne de caractères.

Pour lever cette incompatibilité, la solution est fort simple. Il suffit de changer le type de la variable grâce à la fonction idoine. Dans notre exemple, il nous faut utiliser int().

chiffre = int(chiffre)
print(type(chiffre))
print(b + chiffre)

14

Maintenant, ça fonctionne car les deux variables contiennent des nombres entiers.

Auteur : Ordinosor

Bienvenue sur Miamondo, mon blog personnel. "Mia mondo", c'est de l'espéranto et ça signifie "Mon monde" en français. Je m'appelle Benoît alias Ordinosor, Français expatrié en Allemagne. Mes centres d'intérêt sont les distributions GNU/Linux, le langage de programmation Python, la science-fiction et l'espéranto.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s