Vous êtes sur la page 1sur 44

INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

INF1005D: Programmation
Procédurale en Python
Chapitre 3 – Variables, types de données, expressions et
opérateurs

Génie informatique et génie logiciel 1 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Plan
• Variables
• Règle de nommage des variables
• Types de données simples
• Classes
• Opérateurs
• Expressions

Génie informatique et génie logiciel 2 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Plan
ØVariables
• Règle de nommage des variables
• Types de données simples
• Classes
• Opérateurs
• Expressions

Génie informatique et génie logiciel 3 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Rappel: Modèle d’un ordinateur

Génie informatique et génie logiciel 4 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Variables Définition
• Une variable correspond à une donnée située à un (ou
plusieurs) emplacement de la mémoire, dont la valeur peut être
accédée et modifiée.
• Le type d’une variable définit les informations suivantes:
§ L’espace occupé dans la mémoire,
§ La représentation de la mémoire (la façon dont elle est mémorisée),
§ Les opérations admissibles sur cette variable (addition, soustraction,
comparaison, etc.).

Génie informatique et génie logiciel 5 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Variables Analogie visuelle


Imaginez qu’une variable est représentée par une boîte dotée
d’une étiquette.
Boîte étiquetée Variable
Contenant (boîte) Adresse mémoire
Étiquette Référence humaine à
l’adresse mémoire
Contenu de la boîte Valeur de la variable

• Le type de la variable indique:


§ La taille de la boîte,
§ Le type de contenu qu’on peut mettre dedans,
§ La façon dont le contenu doit être utilisé.

Génie informatique et génie logiciel 6 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Variables Cycle de vie d’une variable


• Une variable suit un certain cycle de vie. L’ordre dans ce cycle
de vie doit être respecté.

Lecture /
Initialisation Suppression
Modification

• Première définition de • Accès au contenu de • À la fin du


la variable la variable programme, les
• Modification du variables sont
contenu effacées
• Peuvent aussi être
manuellement
effacées

Génie informatique et génie logiciel 7 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Variables Affectation (Assignation)


• Pour l’initialisation et la modification d’une variable, il faut lui affecter
une valeur et utiliser l’opérateur d’affectation (=).
• À gauche de l’opérateur se trouve le nom de la variable (étiquette).
• À droite de l’opérateur se trouve la valeur à affecter.
• L’accès au contenu se fait en utilisant le nom défini lors de l’initialisation.
a = 1
b = a
print(a)
print(b)

a = 15
print(a) Initialisation de a Copie de a dans b Modification de a
print(b)

Génie informatique et génie logiciel 8 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Variables Initialisation
• L’initialisation d’une variable est nécessaire pour accéder à son contenu.
• Une variable non initialisée est similaire à une étiquette qui ne correspond
à aucune boîte.
• Une tentative d’utiliser une variable non initialisée entraîne une erreur
d’exécution et l’interruption du programme.
foo = 1234 Traceback (most recent call last):
print("Bonjour") NameError: name 'bar' is not defined
print(bar) Bonjour

Variable bar n’est pas initialisée Process finished with exit code 1

Le programme s’exécute jusqu’à la ligne qui


produit une erreur et s’interrompt.

Génie informatique et génie logiciel 9 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Variables Lecture / Modification


• Une fois une variable initialisée, on peut lire et modifier sa valeur.
• La modification se fait en utilisant de nouveau l’opérateur d’affectation (=).
• La valeur actuelle de la variable est remplacée par la nouvelle valeur
affectée.

foo = 12 12
print(foo) 34

foo = 34
print(foo)
La première fois qu’on lit foo on retrouve la valeur 12
Variable foo est modifiée Après modification, on accède de nouveau à foo et
on retrouve la valeur 34.

Génie informatique et génie logiciel 10 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Variables Affectation composée


• En Python, on peut mettre à jour la variable par rapport à la valeur qu’elle
possède actuellement.
• Par exemple, pour augmenter la valeur d’une variable d’une certaine
quantité, on peut utiliser l’une des deux opérations suivantes:
1. Accès à foo
• Une bonne pratique de 3. Sauvegarde
programmation est d’éviter la
duplication de code.
de la nouvelle
valeur dans foo
foo = foo + 1
• L’opérateur += permet de
réaliser la même opération. 2. Calcul de foo + 1

• Ceci s’appelle une affectation


composée Affectation composée:
augmente foo de 1 foo += 1
Génie informatique et génie logiciel 11 H. 2023
INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Variables Affectations multiples et parallèles


• Afin de simplifier le code Python, on peut également assigner une valeur à
plusieurs variables simultanément (affectation multiple)

x = y = 7

• On peut aussi effectuer des affectations parallèles afin de réduire le


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

• Attention, cette notation peut rapidement devenir lourde! Elle doit être
utilisée avec parcimonie. Un mauvais exemple d’utilisation:
var1, var2, variable5, k, m, n = "Hello", 4, "World", 6, '!', 4.0

Génie informatique et génie logiciel 12 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Variables 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 = ", h*3600 + m*60 + s)

Composition

Génie informatique et génie logiciel 13 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Plan
• Variables
ØRègle de nommage des variables
• Types de données simples
• Classes
• Opérateurs
• Expressions

Génie informatique et génie logiciel 14 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Règles 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 15 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Règles de nommage des variables


• Depuis Python3, on peut également utiliser des caractères Unicode dans
les noms de variables comme les idéogrammes chinois, les caractères
grecs, arabes et latins à accents.

Attention:
Il est recommandé de
nommer les variables
avec des caractères
simples:
A-Z, a-z, 0-9 et _

Génie informatique et génie logiciel 16 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Règles de nommage des variables Snake Case


• Une convention adoptée en Python est d’utiliser le « Snake
Case » pour les noms des variables:
§ Le nom d’une variable est entièrement en lettres minuscules,
§ Les mots qui composent le nom d’une variable sont séparés par un
trait de soulignement (_).

• Exemples de noms de variables en Snake Case


noms_etudiants, notes_classe, heure_arrivee, heure_depart,
date_naissance

Génie informatique et génie logiciel 17 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Règles de nommage des variables Noms réservés: Types

int Entier
str Chaîne de caractères
float Flottant
Bien que cela ne risque pas de
bool Booléen produire une erreur d’exécution
list Liste « dans l’immédiat », il est très
dict Dictionnaire fortement déconseillé de nommer
tuple Tuple des variables avec des noms
complex Nombre Complexe
réservés pour les types.
bytes Chaîne d’octets
bytes_array Vecteur d’octets

Génie informatique et génie logiciel 18 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Règles de nommage des variables Noms réservés: 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
exec return Stopper la fonction courante (renvoyer sa valeur)
finally sort Classer par ordre alphabétique
for Boucle try Essayer (généralement suivi de "except" : sauf)
from De while Boucle
Définition (ou utilisation) dans une fonction S'emploie uniquement dans une fonction, et renvoie
global yield
d'une variable globale son résultat régénéré

Génie informatique et génie logiciel 19 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Règles de nommage des variables Noms réservés: Fonctions

Commande Fichiers
help() Affiche l'aide sur le paramètre open() Ouvre un fichier
dir() Affiche les méthodes du paramètre close() Ferme un fichier
print() Affiche le texte en paramètre read() Lit un fichier
input() Enregistre la saisie de l'utilisateur readline() Lit une ligne
raw_input() Équivalent à input() (sous Python 3, préférer input()) readlines() Lit les lignes séparées par des "\n,"
len() Renvoie la taille du paramètre tell() Donne la position d'un objet
Affiche la liste des entiers de l'intervalle du
range() seek() Donne la position d'un objet
paramètre
ord() Renvoie l'ordinal associé au caractère en paramètre write() Écrit dans un fichier

Crée un dictionnaire (objet "dict"), dont le contenu


locals()
est accessible avec "[]"
Comme locals() mais en incluant les variables
globals()
globales
str() Convertit une variable en caractères

int() Convertit une variable en nombre entier

Génie informatique et génie logiciel 20 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Règles de nommage des variables Noms réservés: 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 21 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Plan
• Variables
• Règle de nommage des variables
ØTypes de données simples
• Classes
• Opérateurs
• Expressions

Génie informatique et génie logiciel 22 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Types de données simples Types 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 au types
containers.
§ bool: booléen (état vrai ou faux)
§ int: entier
§ float: réel flottant (nombre à virgule)
§ complex: nombre complexe (a + b*j) flottant.

Génie informatique et génie logiciel 23 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Types de données simples Typage dynamique fort


• Python est dit un langage à typage dynamique fort.
• Dynamique: le type des variables n’a pas à être déclaré explicitement
(contrairement à C++ et Java par exemple) et le type d’une variable peut
changer au cours de son utilisation.

Types de x, y et z x, y = 4, 7.0 <class 'int'>


automatiquement z = x + y <class 'float'>
déduis par <class 'float'>
l’interpréteur print(type(x)) <class 'complex'>
print(type(y))
print(type(z)) La fonction type() permet d’évaluer le type d’une
Type de x modifié variable.
au cours du x = 3+2j
programme print(type(x))

Génie informatique et génie logiciel 24 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Types de données simples Typage dynamique fort


• Python est dit un langage à typage dynamique fort.
• Fort: car l’interpréteur signale 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)

>>> 2 + "3 francs"


Traceback (most recent call last): En Python
TypeError: unsupported operand type(s) for +: 'int' and 'str'

>>> echo 2 + "3 francs"


5 En PHP

Génie informatique et génie logiciel 25 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Types de données simples Arrondis et conversions


• int(flottant) : float → int : troncature et conversion
• round(flottant, ndigits) : float → int : arrondi et conversion le cas
échéant
§ 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 pair le plus proche
• float(entier) : int → float : conversion
• int(chaine_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...)
• 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 26 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Types de données simples Arrondis et conversions


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

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


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

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


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

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


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

Génie informatique et génie logiciel 27 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Types de données simples Arrondis et conversions


# float : flottant 64 bits
b = -3.3 ; r = 3e10
abs(b) # => 3.3

# arrondi et conversion
int(3.67) # => 3 (int)
int(-3.67) # => -3 (int)
round(3.67) # => 4 (int), comme round(3.67, 0)
round(3.67,1) # => 3.7 (float)
round(133,-1) # => 130 (int)
round(133,-2) # => 100 (int)

# complex : complexe flottant


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

Génie informatique et génie logiciel 28 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Types de données simples Mutabilité et Immutabilité


• En Python, certains types de données ne peuvent être modifiés. On les appelle
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 tuples qui sont des tableaux d’objets.
• L’importance de ce concept sera détaillée au chapitre 6.
Génie informatique et génie logiciel 29 H. 2023
INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Types de données simples 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.
• Ceci est l’équivalent d’une boîte étiquetée qui est vide.
x = y = None
• Par exemple:
if x is None:
x = 5

if y is not None:
x = 7
print(x)

Génie informatique et génie logiciel 30 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Plan
• Variables
• Règle de nommage des variables
• Types de données simples
ØClasses
• Opérateurs
• Expressions

Génie informatique et génie logiciel 31 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Classes Définition
• En plus des types simples (entier, flottant, booléen et
complexe), il existe des classes dont la composition est plus
complexe.
• Nous retrouvons, par exemple, les chaînes de caractères, les
listes, les dictionnaires, les tuples, les ensembles et toute
classe créée par le programmeur.
• Lorsqu’une variable est créée à l’aide d’une classe, on parle
d’un objet (pour faire référence à la Programmation Orientée-
Objet) ou d’une instance de la classe.

Génie informatique et génie logiciel 32 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Classes Fonction
• Une fonction est une procédure que l’on appelle avec des
paramètres. Par exemple:
§ print("Bonjour")
§ sqrt(4)
• On appelle une fonction grâce à son nom et à ses paramètres
entre parenthèses.
• Les fonctions s’utilisent aussi bien sur les types simples que
les classes.
• Nous verrons au Chapitre 7 comment écrire nos propres
fonctions.

Génie informatique et génie logiciel 33 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Classes Attributs
• Le concept de classe utilise des attributs qui sont des
propriétés spécifiques aux instances de la classe. Par exemple,
pour l’objet file qui est un fichier:
§ file.buffer permet d’accéder au tampon du fichier
§ file.name permet d’accéder au nom du fichier

• On accède à un attribut en mettant le nom de l’objet, suivi du


point « . » et du nom de la l’attribut.

Génie informatique et génie logiciel 34 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Classes Méthodes
• Les classes autorisent également l’utilisation de méthodes qui
sont des actions spécifiques sur les objets. Ces méthodes
peuvent prendre des paramètres également. Par exemple, pour
l’objet chaine qui est une chaîne de caractères:
§ chaine.isalpha()
§ chaine.replace("o", "a")

• On appelle une méthode en mettant le nom de l’objet, suivi du


point « . », du nom de la méthode et de ses paramètres entre
parenthèses.
• Nous n’apprendrons pas à développer des méthodes dans ce
cours, mais nous allons utiliser les méthodes qui existent déjà.
Génie informatique et génie logiciel 35 H. 2023
INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Plan
• Variables
• Règle de nommage des variables
• Types de données simples
• Classes
ØOpérateurs
• Expressions

Génie informatique et génie logiciel 36 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Opérateurs Arithmétique sur les valeurs numériques


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

Description Opérateur Exemple Résultat


Addition + 2 + 2 4
Soustraction - 3 – 1 2
Multiplication * 2 * 2 4
Division / 3 / 2 1.5
Exponentiation ** 2 ** 5 32
Division entière // 3 // 2 1
Modulo % 10 % 4 2

Génie informatique et génie logiciel 37 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Opérateurs Affectation composée

Opérateur 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 38 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Opérateurs Opérateurs de comparaison

Opérateur Description Exemple Réslultat


== Égal à x == y False
!= Différent de x != y True
>= Supérieur ou égal à x >= y True
<= Inférieur ou égal à x <= y False
> Supérieur (strict.) à x > y True
< Inférieur (strict.) à x < y False

Soit x = 5, y = 2

Génie informatique et génie logiciel 39 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Opérateurs Opérateurs logiques

Opérateur Description Exemple Réslultat


and Retourne True si les x <= 5 and y > 0 True
deux conditions sont
vraies
or Retourne True si l’une x < 3 or y > 0 True
des deux conditions
au moins est vraie
not Retourne True si la not x == 5 False
condition est fausse

Soit x = 5, y = 2

Génie informatique et génie logiciel 40 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Opérateurs Appartenance
Opérateur d’appartenance Exemple

in Retourne True si la valeur d’une variable est x in y


présente dans une séquence

not in Retourne True si la valeur d’une variable n’est x not in y


pas présente dans une séquence

Génie informatique et génie logiciel 41 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Plan
• Variables
• Règle de nommage des variables
• Types de données simples
• Classes
• Opérateurs
ØExpressions

Génie informatique et génie logiciel 42 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Expressions Définition
• 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 expressions conditionnelles (chapitre 5);
§ les compréhensions de listes (chapitre 6);
§ les compréhensions de dictionnaires (hors programme);
§ les expressions générateurs. (hors programme)

Génie informatique et génie logiciel 43 H. 2023


INF1005D – Variables, types de données, expressions et opérateurs Chapitre 3

Conclusion
• Les variables sont des emplacements dans la mémoire qui
stockent des données.
• Une variable doit être initialisée, traitée puis détruite.
• 4 types atomiques existent: booléens, entiers, flottants et
complexes.
• Plusieurs opérateurs sont définis pour traiter les variables.
• Les objets (types composites) autorisent les méthodes pour
effectuer des actions spécifiques à ces objets.

Génie informatique et génie logiciel 44 H. 2023

Vous aimerez peut-être aussi