Logo de Python

3: Les variables

1 : Qu’est-ce qu’une variable

Dans ce chapitre, nous allons découvrir qu’est-ce qu’une variable, quels sont les types de variables, et comment les utiliser.

1.1 : Théorie -> Comment fonctionne une variable, et à quoi cela sert ?

Il est vrai qu’il est amusant dans un premier temps de lancer ce code et de voir votre machine afficher le résultat de l’addition :

print(2+5)

Mais c’est vrai qu’il serait beaucoup plus intéressant de demander l’addition à effectuer à l’utilisateur, ou de conserver le résultat afin d’en faire quelque chose d’autre. Eh bien c’est possible à l’aide d’un concept à la base de tous les langages de programmation : les variables

Les variables sont des valeurs se trouvant dans des petits espaces mémoire de votre ordinateur. Ces petits espaces mémoire sont réquisitionnés lors du lancement du programme, et, à l’arrêt de ce programme, ils sont vidés et deviennent utilisables par un autre programme. Pour mieux visualiser cette opération, imaginez un groupe de casiers, dans un hôtel : chaque vacancier de l’hôtel se voit attribuer un certain nombre de casiers en fonction de son besoin : une famille demandera plus de casiers, car elle a beaucoup plus de valises qu’un homme seul.

En comparaison :

  • l’hôtel, c’est votre ordinateur
  • Les casiers, c’est votre RAM
  • Les vacanciers, ce sont des programmes
  • Et les bagages, ce sont des variables

Voilà pour la théorie. Mais comment créé-t-on des variables ?

 

2 : Mise en pratique

2.1 : Comment créer sa première variable ?

Pour créer une variable, il suffit de suivre cette syntaxe :

var = 12

Ce n’est peut-être pas très clair : éclairons ce code !

  • ‘var’ est le nom que vous souhaitez donner à votre variable
  • Ensuite, cela paraît logique : vous attribuez à la variable ‘var’ la valeur ’12’

Cela signifie, entre autre, que le mot ‘var’ est associé à la valeur ’12’. Mais maintenant, comment utiliser cette valeur ?

Voici un exemple :

var = 12

print(var)

Ici, le programme écrira ’12’ dans la console. Pourquoi ? Car, comme dit précédemment, à présent, le mot ‘var’ est associé à la valeur ’12’. Donc, en écrivant ‘print(var)’, cela revient à écrire print(12). Mais il y a une différence, car cette variable peut contenir le résultat d’un calcul, qu’il est possible de conserver et de réutiliser.

2.2 : Exemples d’utilisation :

Ici, nous allons créer simplement une variable, et afficher sa valeur via l’instruction print() :

foo = 3.14 # Création d'une variable nommée foo et possédant la valeur 3.14

print("foo") # Affiche "foo"
print(foo) # Affiche 3.14

Vous pouvez également changer la valeur de votre variable au cours de votre programme :

foo = 3.14 # Création d'une variable nommée foo et contenant la valeur 3.14
print(foo)

foo = foo + 1 # foo est à présent égale à sa propre valeur plus 1, c'est à dire 4.14
print(foo) # Affiche la nouvelle valeur de foo

De plus, comme vous devez vous en douter, vous pouvez additionner plusieurs variables :

var1 = 5 # Création d'une variable nommée var1 et valant 5
var2 = 3 # Création d'une variable nommée var2 et valant 3

resultat = var1 + var2 # Création d'une variable résultat valant la somme de var1 et var2

print(resultat) # Affichage du résultat

2.3 : Nommer ses variables

Les noms des variables que vous créez ne doivent pas comporter d’espace ni de caractère spéciaux. Voici quelques exemples de choses à ne pas faire :

variable avec espaces = 0   # Vos variables ne doivent pas comporter d'espaces. Utiliser le '_' à la place
variable_très_mal_nommée = 0 # Vos variables ne doivent pas porter d'accents
1variable = 0                # Vos variables ne doivent pas commencer par un nombre. 

Voici en revanche des exemples de noms tout à fait correctes :

variable_compteur = 0 # Utilisez l'underscore pour remplacer les espaces
variableCompteur = 0  # Pour nommer votre variable d'une manière propre sans underscore, vous pouvez aussi symboliser les espaces par des majuscules
variable1 = 0         # Vous pouvez utiliser des nombres dans le nom de vos variables à condition que le premier caractère n'en soit pas un.

A préciser que les notation que je vous proposes pour nommer les variables ne sont pas obligatoires, mais rendront votre code plus propre et le fera respecter la convention de nommage.

 

3 : Les conversions et les types de variables

3.1 : Les types de variables

Cela a déjà été dit, il existe plusieurs types de valeurs :

  • Les nombres entiers : on les appelle ‘int’ (12, -7, 4864…)
  • Les nombres décimaux : on les appelle ‘float’, pour ‘nombres à virgules flottantes’ (3.14, 0.25, -8.9…)
  • Les chaînes de caractères : on les appelle ‘string’, ‘chaîne’ en anglais (“Hello World!”, “Un texte”, “3”). Vous devez les encadrer par des guillemets.
  • Les booléens : ‘bool’, ils ne peuvent posséder qu’une de ces deux valeur -> true, false (Vrai ou Faux)

Lorsque vous créez une variable, en Python, le type est choisi automatiquement en fonction de la valeur donnée :

var1 = 12 # Cette variable sera un int
var2 = 3.25 # Cette variable sera un float
var3 = "Hello" # Cette variable sera un string (une chaîne de caractère)

3.2 : Convertir une variable d’un type à un autre

Mais voilà, il est impossible d’additionner une string avec un int :

 

var_int = 12 # Création d'une variable de type int nommée var_int et valant 12
var_str = "Chose" # Création d'une variable de type string nommée var_str et valant "Chose"

var_int = var_int + var_str # Erreur : pas possible d'additionner un int et un string

Mais il est possible de convertir un int en string ou un string en int en utilisant les conversions :

 

var_int = 5
var_str = "Je sais compter jusqu a : "

var_str = var_str + str(var_int)

print(var_str)


La dernière ligne utilise une conversion en string : vous devez indiquer entre parenthèses la variable à convertir, et la "fonction" str() va créer une copie de var_int, mais en chaîne de caractères. Ce code affichera :


Je sais compter jusqu a : 5

Il existe des conversions pour tous les types :

  • int()
  • float()
  • str()
  • char()
  • bool()

3.3 : Exemples concret de l’utilité des conversions :

Pour le moment, l’utilité ne doit pas vous être très visible. Je vais vous donner un exemple concret, en vous faisant découvrir une nouvelle fonction, qui va en couple avec print() : c’est input()

Tandis que print s’occupe de faire “sortir” des informations en les affichant dans la console, input() permet à l’utilisateur de rentrer une information, et donc d’interagir avec le programme. Par exemle, nous pouvons imaginer un programme demandant à l’utilisateur de saisir deux valeurs, et qui affiche le résultat de l’addition de ces deux valeurs. Voici comment fonctionne input() :

valeur1 = input("Entrez une valeur : ")
print(valeur1)

Voici ce qui ce passera :

  • La console écrira “Entrez une valeur : “
  • L’utilisateur pourra écrire ce qui lui passe par la tête, et la chaîne de caractère qu’il aura écrit sera passé en valeur à la variable valeur1.
  • Si l’utilisateur a écrit “Patate”, la console écrira “Patate” lors du print de cette variable

Après avoir appris à utiliser input(), créons notre programme :

valeur1 = input("Entrez une première valeur : ") # Première variable
valeur2 = input("Entrez une seconde valeur : ") # Seconde variable

print(valeur1 + valeur2) # Affichage du résultat

Saisissez des nombres. Pour moi, ce sera 15 et 15. Normalement, la console devrait me répondre 30. Mais il en va autrement, voici la réponde la console :

1515

Python aurait-il des ratés ? Non, c’est simplement une erreur de logique :

  • Lorsque vous additionnez deux chaîne de caractères, cela crée une fusion des deux. En Python, “Une ” + ” chaîne” = “Une chaîne”.
  • input() renvois une chaîne de caractère.
  • Donc, valeur1 et valeur2 sont des chaînes de caractères, et donc se fusionnent et ne s’additionnent pas !

Vous devez donc convertir la valeur donnée par input en nombre (int). Pour cela, rien de plus simple, il vous suffit d’encastrer l’input dans une conversion en int, comme ci-dessous (Attention aux doubles parenthèses) :

valeur1 = int(input("Entrez une première valeur : ")) # Première variable (int)
valeur2 = int(input("Entrez une seconde valeur : ")) # Seconde variable (int)

print(valeur1 + valeur2) # Affichage du résultat

Et là, en écrivant 15 et 15, la console va vous répondre :

30