Les Variables

Les variables en python.

Pendant l’exécution d’un programme, les données que ce dernier manipule sont stockées en mémoire centrale. En nommant ces données, on peut les manipuler beaucoup plus facilement. Les variables nous permettent donc de manipuler ces données sans avoir à se préoccuper de l’adresse explicite qu’elles occuperont effectivement en mémoire. Pour cela, il suffit de leur choisir un nom ou identificateur. L’interpréteur (programme de traduction) s’occupe d’attribuer une adresse à chaque variable et de superviser tous les éventuels futurs changements d’adresse. Une variable peut-être assimilée à une boîte aux lettres portant un nom. Par exemple x = 2 signifie : « à l’adresse mémoire référencée par x-autrement dit, dans la boîte aux lettres dénommée x-, se trouve la valeur 2 ». Nous utilisons plus fréquemment l’abus de langage « la variable x vaut 2 ».

Affectation

L'instruction :

>>>x = 2
n'a pas la même signification qu'en mathématiques. Il s'agit d'une affectation et non pas un symbol d'égalité.

L'instruction

>>>x = x+1
est très fréquente en informatique en revanche, elle est inaccepatable en mathématiques.

Affectations multiples

Sous python, on peut affecter une valeur à plusieurs variables simultanément :

>>>a=b=2
>>>a
2
>>>b
2
>>>

Affectations parallèles

On peut aussi effectuer des affectations parallèles à l'aide d'un seul opérateur :

>>>a,b=2,3
>>>a
2
>>>b
3
>>>

Etant donnée la liberté autorisée dans le choix du nom des variables, il est préférable, pour améliorer la lisibilité des programmes, de choisir des noms de variables en fonction de ce qu’elles représentent réellement. Préférez des noms parlants tels que couleur, taille ou prix à x, y ou z.

En Python, la simple déclaration d’une variable ne suffit pas à la créer. Après avoir choisi son nom, il est nécessaire de lui affecter une valeur initiale.

Exemple

>>>nombrePrefere = 16
>>>motPreferee =  " liberté ! "
>>>pi = 3.14159

L’ordinateur ne sait pas faire l’addition de plus de deux nombres mais cela suffit à calculer la somme de n premiers entiers. Pour cela, il est nécessaire de créer une variable intermédiaire qu’on appellera par exemple somme de manière à conserver le résultat des sommes intermédiaires.

Exemple

>>> somme=0	# initialisation : la somme est nulle
>>> for i in range(1 , 10) :		# pour tous les indices de 1 à 10 exclu
...     somme = somme + i	# on ajoute le ième élément à somme
... 
>>> somme		# somme de tous les entiers postif de 1 à 9.
45
>>>

Remarque : commentaires

Le symbole # apparaîtra à maintes reprises. Il marque le début d’un commentaire que la fin de la ligne termine. Autrement dit, un commentaire est une information aidant à la compréhension du programme mais n’en faisant pas partie comme dans l’exemple ci-dessus.

Les types de variables en python.

Comme le montre l’exemple 1, différents types d’informations (nombres, chaînes de caractères, liste …) peuvent être placés dans une variable et

Les entiers et flottants

Il existe deux types de nombres réels en Python, les nombres flottants (float) et les nombres entiers (int). L’instruction x = 5 crée une variable de type int initialisée à 5 tandis que y = 5.0 crée une variable de type float initialisée à 5.0.

Exemple

>>>a=9+7
>>>a
16
>>b=9/4
>>>b
2.25
>>>c=9//4
>>>c
2
>>>d=9.+7
>>>d
16.0

>>>

Voir ce cours pour plus de détails concernant les nombres flottants et entiers.

Et voir ce cours concernant les fractions.

Les types complexes

Nous avons vu ci-dessus les nombres réels. Python fonctionne aussi avec les nombres complexes, dont la partie imaginaire est identifiée par la lettre j au lieu de la lettre i utilisée dans la notation mathématiquesque. Par exemple, 1+2i est écrit 1+2j en Python.

>>> z=5+3j 
>>> t = 5.2+1j
>>> z+t
(10.2+4j) 
>>>

Voir ce cours pour plus de détails concernant les nombres complexes.

Les booléens

Les booléens sont le résultat d’opérations logiques et ont deux valeurs possibles : True ou False.

>>>x = 3 < 4
>>>x
True
>>>y = not x
>>>y
False
>>>

Le type liste (list)

Une liste permet de lister différents objets qui peuvent être de tout type. Elle apparaît comme une succession d’objets compris entre crochets et séparés par des virgules. On peut donc placer dans des listes du texte, des nombres, etc ...

>>> liste=[ 5,5.0, 13/4, 9//4, 13%3,42]
>>> liste
[5, 5.0, 3.25, 2, 1, 42]
>>> liste[0]	# le premier élément de la liste car en programmation, on commence à compter à partir de 0
5
>>> liste[3]	# le quatrième élément de la liste
2
>>> len(liste)	# la longueur de la liste
6
>>> liste.append(7)	# pour ajouter 7 à la fin de la liste
>>> liste
[5, 5.0, 3.25, 2, 1, 42, 7]
>>>

Voir ce cours pour plus de détails concernant les listes.

Le type string (str) ou chaîne de caractère

Le terme "chaîne de caractères" ou string en anglais signifie une suite finie de caractères qui ne sont pas seulement des lettres mais ils peuvent être aussi des nombres, <, @,*,%, etc,.. ou un mélange . Cette suite de caractères est comprise entre deux guillemets ou deux apostrophes, ces deux symboles sont interchangeables.

Il ne faut pas confondre la partie entre guillemets ou apostrophes, qui est une constante, de la variable qui la contient.

Exemple 5

>>> t="Texte1"
>>> t
'Texte1'
>>> z="Texte2"
>>> z
'Texte2'
>>> t+z
'Texte1Texte2'
>>>

Par défaut, Python ne permet pas l’insertion de caractères tels que les accents dans les chaînes de caractères, pour résoudre ce problème, il faut ajouter une ligne placée en première position du programme, qui précise que des accents pourront être utilisés, comme suit :

# -*- coding:Utf8 -*-

Utilisation des modules en Python

On sait à présent utiliser quelques instructions de base en Python. Cependant, il arrivera qu'on ait besoin d'autres fonctions. Elles sont regroupées par module que l'ont peut importer au fur et à mesure.

Module math

Le module de math permet d'utiliser des fonctions mathématiques.

Pour pouvoir utiliser les fonctions du module math, on doit les importer à l'aide de l'instruction :

>>>from math import *

Exemple

>>>from math import *
>>>sqrt(3)
1.7320508075688772
>>>floor(15.765)
15
>>> cos(pi)
-1.0
>>>

Remarque

Attention sans l'importation des fonctions du module math:

from math import *

sqrt() ne fonctionne pas car on ne reconnaît pas les fonctions :

sqrt() et floor()

L'instruction ne s'exécute pas et on obtient le message :

>>>sqrt(3)
Traceback (most recent call last):
  File "", line 301, in runcode
  File "", line 1, in 
NameError: name 'sqrt' is not defined
>>>

Module random

En programmation, on a souvent besoin de simuler le hasard. pour cela on utilise le module random

comme le module math, pour pouvoir utiliser les fonctions du module random, on doit les importer à l'aide de l'instruction suivante :

>>> from random import *
>>> randint(1,6) # tirer au hasard un entier compris entre 1 et 6 compris
4
>>>

Un autre exemple

>>> from random import *
>>> liste=["coeur", "carreau", "pique", "trefle"]
>>> choice(liste)	# tirer au hasard un élément de la liste
'pique'
>>>

Voici un exemple pour simuler 10 lancers d'un dé classique équilibré à six faces :

>>> from random import *
>>> for i in range(1,11) :
...     print("Au lancer numéro ",i, " on obtient : ", randint(1,6) )
...     
Au lancer numéro  1  on obtient :  2
Au lancer numéro  2  on obtient :  4
Au lancer numéro  3  on obtient :  3
Au lancer numéro  4  on obtient :  2
Au lancer numéro  5  on obtient :  6
Au lancer numéro  6  on obtient :  6
Au lancer numéro  7  on obtient :  2
Au lancer numéro  8  on obtient :  3
Au lancer numéro  9  on obtient :  4
Au lancer numéro  10  on obtient :  4
>>>