Vous êtes sur la page 1sur 32

Chapitre 3 - Variables, types de données, expressions, opérateurs

INF1007 : Introduction à la
programmation
Chapitre 3 – Variables, types de données,
expressions, opérateurs

Génie informatique et génie logiciel Benjamin De Leener 1 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Plan du cours
1. Affectation, initialisation, ré-affectation, modification,
emplacement dans la mémoire
2. Composition, affectation composée et affectation multiple
3. Nom de variables, mots réservés et encodage des caractères
4. Type de données simples et notions de typage dynamique fort
5. Fonctions et opérations arithmétiques sur les nombres
6. Opérateurs d’affectation composée, de comparaison, de
logique, d’identité et d’appartenance, définition d’une
expression et priorité des opérations
7. None

Génie informatique et génie logiciel Benjamin De Leener 2 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Rappel: Modèle d'un ordinateur

Entrée Sortie
(clavier, Mémoire
(écran, etc.)
etc.)

Bus

Unité
Unité de
arithmétique et Registres
contrôle
logique

UCT (en anglais CPU)

Génie informatique et génie logiciel Benjamin De Leener 3 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Qu’est-ce qu’une variable ?


Une variable correspond à une donnée située à un
emplacement mémoire dont la valeur peut être modifiée.
Le type d’une variable correspond à la sorte de celle-ci. Ce
type précise :
• l’espace occupé dans la mémoire,
• la représentation de la mémoire (la façon dont elle est
mémorisée) et
• les opérations admissibles.

Génie informatique et génie logiciel Benjamin De Leener 4 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Qu’est-ce qu’une variable ?


Une variable peut être comparée à un verre. On peut
ajouter et retirer du liquide selon sa bonne volonté.

Verre Variable
Contenant Adresse mémoire
Contenu Valeur

Le type indique:
• la grandeur du verre,
• le liquide admis,
• la façon dont ce liquide doit être manipulé.

Génie informatique et génie logiciel Benjamin De Leener 5 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Affectation d’une variable (ou assignation)


Pour affecter une valeur à une variable, c'est-à-dire l'initialiser ou
modifier sa valeur, on utilise l'opérateur d'affectation (=). À gauche
de l'opérateur on retrouve le nom de la variable et à droite la valeur
qu'on souhaite lui affecter.
Pour accéder au contenu d'une variable, il suffit d'utiliser son nom. Cet
accès peut, par exemple, se faire dans une expression
mathématique, ou avec la fonction print().

1 a = 1
2 b = a 1 1 1 15 1
3 print(a)
4 print(b) a a b a b
5
6 a = 15 Après
Après Après
7 print(a) a = 15
a=1 b=a
8 print(b)

Génie informatique et génie logiciel Benjamin De Leener 6 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Initialisation d’une variable


Avant de pouvoir accéder au contenu d'une variable, il faut qu'elle
soit initialisée, c'est-à-dire qu'elle doit posséder une valeur. Si vous
tentez d'utiliser une variable non initialisée, l'exécution du
programme va s'arrêter et l'interpréteur Python va produire
une erreur d'exécution.

1 height = 178
2 print(‘Sa taille est :’)
3 print(heigth)

Génie informatique et génie logiciel Benjamin De Leener 7 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Modification d’une variable


Une fois une variable initialisée, on peut donc modifier sa valeur en
utilisant de nouveau l'opérateur d'affectation (=). La valeur actuelle
de la variable est remplacée par la nouvelle valeur qu'on lui affecte.

1 data = 12
2 print(data)
3
4 data = 99
5 print(data)

Génie informatique et génie logiciel Benjamin De Leener 8 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Affectation composée
En Python, on peut mettre à jour une variable par rapport à la valeur
qu'elle possède actuellement.
Par exemple, on peut vouloir augmenter la valeur d’une variable d’une
certaine quantité:
data = data + 1

En programmation, une bonne pratique consiste à éviter la duplication


du code. L’opérateur += permet, dans ce cas-ci, de réaliser
l’addition suivie de l’affectation en une fois:
data += 1

Un tel opérateur permet de réaliser une affectation composée, c’est-à-


dire une opération directement suivie d’une affectation.

Génie informatique et génie logiciel Benjamin De Leener 9 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Affectation multiple
Afin de simplifier le code Python, on peut également assigner une
valeur à plusieurs variables simultanément.
x = y = 7

On peut également effectuer des affections parallèles afin de réduire le


nombre de lignes de code.
x, y = 4, 7

Attention, cette notation peut rapidement devenir lourde et doit être


utilisée avec parcimonie. Par exemple:

var1, var2, variable5, k, m, n = ‘Hello’, 4, ‘World’, 6, ‘!’, 4.0, 7

Génie informatique et génie logiciel Benjamin De Leener 10 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Composition
L'une des grandes forces d'un langage de programmation de haut
niveau est qu'il permet de construire des instructions complexes par
assemblage de fragments divers
Ce principe est appelé la composition et fait généralement appel à des
opérateurs.

h, m, s = 15, 27, 34
print("nombre de secondes écoulées depuis minuit = ", h*3600 + m*60 + s)

Génie informatique et génie logiciel Benjamin De Leener 11 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Règle de nommage des variables


Afin d’attribuer un nom à une variable, certaines règles sont à respecter:
• on ne peut pas utiliser certains mots appelés mots réservés
• le premier caractère doit être une lettre minuscule (a-z), une lettre
majuscule (A-Z) ou un tiret de soulignement (_)
• pour les autres caractères, on autorise en plus les chiffres (0-9)
De plus,
• les noms de variable peuvent avoir n’importe quelle longueur mais il
est préférable qu’ils soient concis et qu’ils aient une signification
• Les Noms De Variable Sont Sensibles À La Casse (abc, ABC, aBC,…)

Génie informatique et génie logiciel Benjamin De Leener 12 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Noms réservés en Python – mots clés


and Opérateur ET booléen logique if Condition
as import Importation de module
assert in Contient
break Sortie de boucle is Est
class Définition de classe d'objet is not N'est pas
continue lambda Définition d'une fonction Lambda
def Définition de fonction not Négation logique
del Suppression de or Opérateur de choix OU booléen logique
elif Condition contraire pass
else Contraire print Afficher
except Sauf (à utiliser après "try") raise
Stopper la fonction courante (renvoyer sa
exec return
valeur)
finally sort Classer par ordre alphabétique
Essayer (généralement suivi de "except" :
for Boucle try
sauf)
from De while Boucle
Définition (ou utilisation) dans une S'emploie uniquement dans une fonction, et
global yield
fonction d'une variable globale renvoie son résultat régénéré

Génie informatique et génie logiciel Benjamin De Leener 13 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Noms réservés en Python – fonctions


Commande Fichiers
help() Affiche l'aide sur le paramètre open() Ouvrir un fichier
dir() Affiche les méthodes du paramètre close() Fermer un fichier
print() Affiche le texte en paramètre read() Lire un fichier
input() Enregistre la saisie de l'utilisateur readline() Lire une ligne
Équivalent à input() (sous Python 3,
raw_input() readlines() Lire les lignes séparées par des "\n,"
préférer input())
len() Renvoie la taille du paramètre tell() Donne la position d'un objet
Affiche la liste des entiers de l'intervalle
range() seek() Donne la position d'un objet
du paramètre
Renvoie l'ordinal associé au caractère
ord() write() Écrire dans un fichier
en paramètre
Créer un dictionnaire (objet "dict"), dont
locals()
le contenu est accessible avec "[]"
Comme locals() mais en incluant les
globals()
variables globales
str() Convertit une variable en caractères
int() Convertit une variable en nombre entier

Génie informatique et génie logiciel Benjamin De Leener 14 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Noms réservés en Python – modules


anydbm dummy_thread pickle thread
array dummy_threading Queue threading
atexit exceptions re time
bisect encodings.aliases shelve timeit
calendar formatter shutil traceback
cmath heapq signal unicodedata
codecs gettext stat xml.sax
collections locale string warnings
commands linecache StringIO whichdb
ConfigParser marshall struct _winreg
copy math subprocess
ctypes mmap sys
datetime operator textwrap
decimal os tempfile

Génie informatique et génie logiciel Benjamin De Leener 15 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Règle de nommage des variables


Depuis Python 3, on peut également utiliser des caractères Unicode
dans les noms de variable, comme des idéogrammes chinois

Génie informatique et génie logiciel Benjamin De Leener 16 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Types de données simples


Python propose 4 types simples de base (built-in). Ils sont dits simples
(ou scalaires, atomiques) car ils permettent de stocker une seule
donnée par variable, contrairement aux types containers.
• bool : booléen (état vrai ou faux)
• int : entier (en précision illimitée depuis Python 3)
• float : réel flottant (double précision 64 bits)
• complex : complexe flottant

Génie informatique et génie logiciel Benjamin De Leener 17 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Python est un langage à typage dynamique fort


dynamique : car on n'a pas à déclarer explicitement les variables
utilisées, et le type d'une variable peut changer au cours de son
utilisation (selon le type de l'objet référencé par la variable)
fort : car l'interpréteur peut signaler des erreurs de type (par exemple si
l'on définit : 2 + "3 francs") par opposition à un langage faiblement
typé comme PHP (qui retournerait 5 dans ce cas)

1 x, y = 4, 7.0 6 print(type(x))
2 print(x, y) 7 print(type(y))
3 8 print(type(z))
4 z = x + y
5 print(z)

La fonction type() permet d’évaluer le type d’une variable.

Génie informatique et génie logiciel Benjamin De Leener 18 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Exemple de manipulation de nombres

1 a, b, c = 1, 1, 1
2 while c < 50:
3 print(c, ":", b, type(b))
4 a, b, c = b, a+b, c+1

1 a, b, c = 3, 2, 1
2 while c < 15:
3 print(c, ":", b, type(b))
4 a, b, c = b, a*b, c+1

1 a, b, c = 1., 2., 1
2 while c < 18:
3 print(c, ":", b, type(b))
4 a, b, c = b, a*b, c+1

Génie informatique et génie logiciel Benjamin De Leener 19 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Arrondi et conversion
• int(flottant) : float → int : troncature et conversion
• round(flottant, ndigits) : float → int : arrondi, et le cas échéant
conversion
• arrondi à ndigits chiffres après la virgule (si ndigits positif), ou avant la
virgule (si négatif) ; par défaut ndigits=0, c'est-à-dire conversion à l'entier
supérieur (si flottant est positif) ou inférieur (si négatif)
• float(entier) : int → float : conversion
• int('nombre', base)
• pour faire une conversion en entier base 10 d'un nombre exprimé sous
forme de chaîne en n'importe quelle base (2= binaire, 8= octale, 16=
hexadécimale, etc...), on peut utiliser
• abs(entier_ou_flottant)
• Pour récupérer la valeur absolue d'un entier ou flottant, on dispose de la
fonction habituelle.

Génie informatique et génie logiciel Benjamin De Leener 20 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Arrondi et conversion
1 # bool : booléen (logique)
2 vlog = True
3 type(vlog) # => builtins.bool
4 not vlog # => False
5 # notez le 1er car. majuscule de True et False !

6 # int : entier de précision illimitée !


7 a = 2 ; i = -12
8 v = 2**80 # => 1208925819614629174706176

9 # définition d'entiers en binaire, octal ou hexadéc.:


10 k = 0b111 # => 7
11 m = 0o77 # => 63
12 n = 0xff # => 255

13 # conv. chaînes bin/octal/hexa en entier & vice-versa:


14 int('111',2) # => 7, et inverse: bin(7) => '0b111’
15 int('77',8) # => 63, et inverse: oct(63) => '0o77’
16 int('ff',16) # => 255, et inverse: hex(255) => '0xff'

Génie informatique et génie logiciel Benjamin De Leener 21 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Arrondi et conversion

17 # float : flottant 64 bits


18 b = -3.3 ; r = 3e10
19 abs(b) # => 3.3

20 # arrondi et conversion
21 int(3.67) # => 3 (int)
22 int(-3.67) # => -4 (int)
23 round(3.67) # => 4 (int), comme round(3.67, 0)
24 round(3.67,1) # => 3.7 (float)
25 round(133,-1) # => 130 (int)
26 round(133,-2) # => 100 (int)

27 # complex : complexe flottant


28 cplx = 3.4 + 2.1j # ou: cplx = complex(3.4, 2.1)
29 cplx.real # => 3.4
30 cplx.imag # => 2.1

Génie informatique et génie logiciel Benjamin De Leener 22 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Mutable versus Immutable


En Python, certains types de données ne peuvent être modifiés. On les
appelés des objets « immutables ». À l’inverse, les objets dont la valeur
peut être modifiée sont appelés des objets « mutables ».
Lorsqu’un objet immutable est modifié, l’interpréteur détruit l’instance de la
variable et en crée une nouvelle avec la nouvelle valeur.
Lorsqu’un objet mutable est modifié, la valeur de la variable est simplement
remplacée par la nouvelle valeur.
Autrement dit, la simple instruction x+=3 qui consiste à ajouter à la variable x
la valeur 3 crée une seconde variable dont la valeur est celle de x
augmentée de 3 puis à en recopier le contenu dans celui de la variable x.
Les nombres sont des types immuables tout comme les chaînes de
caractères et les tuple qui sont des tableaux d’objets.
Nous verrons l’importance de ce concept au chapitre 6.

Génie informatique et génie logiciel Benjamin De Leener 23 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Opérations arithmétiques sur des variables


Python propose plusieurs opérateurs arithmétiques repris dans le
tableau ci-dessous, qui peuvent être appliqués à des variables
numériques.

Description Notation
Addition +
Soustraction -
Multiplication *
Division /
Exponentiation **
Division entière //
Reste de la division entière %

Génie informatique et génie logiciel Benjamin De Leener 24 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Opérateur d’affectation composée

Operateur Exemple Identique à


= x = 5 x = 5
+= x += 3 x = x + 3
-= x -= 3 x = x - 3
*= x *= 3 x = x * 3
/= x /= 3 x = x / 3
%= x %= 3 x = x % 3
//= x //= 3 x = x // 3
**= x **= 3 x = x ** 3

Génie informatique et génie logiciel Benjamin De Leener 25 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Opérateurs de comparaison

Operateur Signification Exemple


== Égal à x == y

!= N’est pas égal à x != y

> Est plus grand que x > y

< Est plus petit que x < y

>= Plus grand ou égal x >= y

<= Plus petit ou égal x <= y

Génie informatique et génie logiciel Benjamin De Leener 26 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Opérateurs logiques

Operateur Description Exemple

and Retourne True si les deux x < 5 and x < 10


expressions l’entourant sont
vraies
or Retourne True si l’une des x < 5 or x < 4
deux expressions l’entourant
est vraie
not Inverse le résultat, en not(x < 5 and x < 10)
retournant True si le résultat
est False, et inversément

Génie informatique et génie logiciel Benjamin De Leener 27 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Opérateurs d’identité et d’appartenance


Operateur d’identité Exemple
is Retourne True if les deux variables x is y
correspondent au même objet
is not Retourne True si les deux variables x is not y
n’appartiennent pas au même objet
Opérateur d’appartenance Exemple
in Retourne True si la valeur d’une x in y
variable est présente dans une
séquence
not in Retourne True si la valeur d’une x not in y
variable n’est pas présente dans
une séquence

Génie informatique et génie logiciel Benjamin De Leener 28 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Définition d’une expression


Une expression consiste en la combinaison d’opérateurs et
d’opérandes, et permet d’assigner une valeur à une variable de
façon plus ou moins complexe.
Exemple : « 1 + 2 »
En plus des expressions littérales, qui combinent des variables simples
avec les opérateurs arithmétiques, quatre types d’expressions
existent en Python: les compréhensions de listes, les
compréhensions de dictionnaires, les expressions générateurs et
les expressions conditionnelles. Nous verrons ces fonctionnalités de
Python plus loin dans le cours.
Le concept d’expression n’est pas à confondre avec les « expressions
régulières » qui sont un concept plus avancé de manipulation de
chaînes de caractères.

Génie informatique et génie logiciel Benjamin De Leener 29 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

L’objet de type « rien » ou None


Le langage Python propose un type None pour signifier qu’une variable
ne contient rien. La variable est de type None et est égale à None.
L'objet Python None exprime donc l'absence de valeur dans une
variable et permet de l’initialiser en attendant de lui donner une
valeur.
Par exemple: 1 x = y = None
2 if x is None:
3 x = 5
4
5 if y is not None:
6 x = 7
7 print(x)

Génie informatique et génie logiciel Benjamin De Leener 30 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Exemples d’opérations sur des variables


Quelles sont les valeurs affichées par les deux programmes ci-
dessous?

1 x = 11 1 x = 4 < 5
2 y = 2 2 print(x)
3 z = x // y 3 print(not x)
4 zz = x / y 4
5 print(z, zz) 5

Génie informatique et génie logiciel Benjamin De Leener 31 H2022


Chapitre 3 - Variables, types de données, expressions, opérateurs

Exercices
1. Écrire un programme qui calcule la racine carré et le carré d’un
nombre.
2. Écrire un programme qui calcule la moyenne de trois nombres.
3. Écrire un programme qui convertisse en radians un angle fourni au
départ en degrés, minutes, secondes.
4. Écrire un programme qui convertisse en degrés, minutes,
secondes un angle fourni au départ en radians.
5. Écrire un programme qui convertisse en degrés Celsius une
température exprimée au départ en degrés Fahrenheit, ou
l'inverse. La formule de conversion est : 𝑇! = 𝑇" ×1.8 + 32

Génie informatique et génie logiciel Benjamin De Leener 32 H2022

Vous aimerez peut-être aussi