Vous êtes sur la page 1sur 58

CHAPITRE : 4

PROGRAMMER AVEC PYTHON :


OPÉRATIONS ARITHMÉTIQUES, VARIABLE,
AFFECTATION

Informatique1 
2019 - 2020 1ère année ST/SM M. SID AHMED BERRABAH
OBJECTIFS
2

 Apprendre les concepts de base


de l'algorithmique et de la
programmation.

 Etre capable de mettre en œuvre


ces concepts pour analyser des
problèmes simples et écrire les
programmes correspondants
24/10/18
CARACTÉRISTIQUES DE
3
PYTHON
 Langage interprété.
 L'interpréteur fonctionne en 2 modes :
 Interactif (mode commande) : boucle REPL (Read-
Evaluate-Print Loop) => [Lit→Évalue→Affiche] une
commande à la fois
 Programme (mode script) : exécute un programme
écrit dans un fichier .py
 Développé sous licence Libre Open-Source.
Disponible gratuitement.
 Multiplateforme : Linux, MacOS, Windows, etc.

24/10/18
CARACTÉRISTIQUES DE PYTHON
4

 Langage de programmation de haut niveau


facile pour les programmeurs débutants.

 Riche, fourni avec de nombreux modules :


manipulation de texte, calcul numérique,
gestion de fichiers, bases de données,
compression, cryptographie, gestion des
ressources système, réseau, internet,
multimédia, interfaces graphiques, outils de
développement, etc.
24/10/18
MODE PROGRAMME
5

 Le programme source Python est écrit dans un


fichier texte d'extension .py

our exécuter le programme: Python nom_fichier.py


sous linux) 24/10/18
MODE INTERACTIF
6

Lancez l’IDLE Python 3.4.2

Boucle REPL (Read-Eval-Print) :


Caractères ">>>" : invite (prompt) => l'interpréteur attend une
commande
La ligne tapée (suivie de 'Entrée') est évaluée (exécutée)
immédiatement.
Le résultat de la commande (s'il y en a) est affiché
Recommence, jusqu'à la sortie de l'interpréteur (touches Ctrl+D
ou commande quit())

24/10/18
MODE INTERACTIF
7

 Pratique pour faire des essais, pour


apprendre

 Peut être utilisé comme une calculatrice : on


tape des expressions mathématiques qui
sont immédiatement évaluées pour afficher
le résultat.
>>> 1295+42
1337
>>>

24/10/18
MODE INTERACTIF
8

 Si la commande/l'expression n'est pas


reconnue : erreur

>>> salut
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
salut
NameError: name 'salut' is not defined
>>> 3pi/2
SyntaxError: invalid syntax
>>>

24/10/18
TYPE DE DONNÉES
9

 Python traite des données de plusieurs types. Les plus


simples sont :
 Les nombres entiers, int (integer) : ex: -42 0
1337 270272161272290598050102250413
(pas de limite en Python, tant que la RAM est suffisante)

 Les nombres réels, float (floating point numbers:


nombres à virgule flottante) : ex: 1.414 -133.7
2.5e-8 3e12

 Les nombres complexes, complex : ex: 5 + 2j


2.4 + 9.7j
24/10/18
TYPE DE DONNÉES
10

 Les booléens, bool (boolean) : seulement


2 valeurs de données logiques : True (qui
signifie Vrai) et False (qui signifie Faux)

 Les chaînes de caractères, str (string) :


ex: "bonjour" , "A4 = 21 x 29,7 cm" , "12345
"

24/10/18
CONSTANTES LITTÉRALES
11

 Une constante littérale est une notation qui représente


une valeur de type simple.

 Une constante littérale est un nombre: 15,... ou une


chaine de caractères telle que: "C'est une chaine " ou
un booléen. On l'appelle :

 Littérale car on utilise sa valeur telle qu'elle est.


 constante car sa valeur ne change pas.

24/10/18
CONSTANTES LITTÉRALES
12

 Voici les règles d'écriture pour chaque type cité :


 int :
 un nombre entier est constitué d'un ou plusieurs
chiffres et ne doit pas commencer par un zéro (sauf
pour la valeur 0)
 il peut être écrit en binaire (base 2) en le faisant
précéder par 0b, en octal (base 8) avec 0o ou en
hexadécimal (base 16) avec 0x
 Ex : 42 0o52 0b101010 0x2a ont la même valeur,
042 n'est pas un entier valide

24/10/18
CONSTANTES LITTÉRALES
13

 float :
 Un nombre réel comporte obligatoirement
soit une virgule décimale sous forme d'un
point (pas une virgule), soit un symbole e
signifiant "10 puissance...". Ex: 1.3 3e5
2.1e4
 Il peut ne rien y avoir avant ou après le
point : .42 égale 0.42 et 42.égale 42.0 mais
ne sont pas du même type que 42 qui est
un entier.

24/10/18
CONSTANTES LITTÉRALES
14

 Constantes littérales imaginaires :


 Elles sont utilisées pour écrire la partie imaginaire
des nombres complexes.
 Elles sont constituées d'un nombre réel ou entier
suivi de la lettre j
 Ex : 3.14j 10.j 10j .001j 1e100j 3.14e-10j

 bool :
 Les seules constantes littérales booléennes sont
True (qui signifie Vrai) et False (qui signifie Faux)

24/10/18
CONSTANTES LITTÉRALES
15

 str :
 Une valeur chaine de caractères est représentée en
l'entourant soit avec des guillemets (") soit avec des
apostrophes ('). Elle est constituée de n'importe quels
caractères (lettres, chiffres, espaces, ponctuation...). Ex :
"bonjour" 'Salut "tonton" <3 !'
 Pour représenter certains caractères, on doit souvent
utiliser une des séquences d'échappement telles que :
 \' pour le caractère '
 \" pour le caractère "
 \n pour un retour à la ligne
 \t pour une tabulation
 \\ pour le caractère \
24/10/18
NOTION DE VARIABLE
16

 Les valeurs sont par défaut anonymes et


volatiles : une fois utilisée, une valeur
disparait du programme.

 Problème : C'est bien de savoir faire


des opérations mais, si on ne peut pas
stocker le résultat quelque part, cela
devient très vite ennuyeux.

 Solution : utiliser des variables. 24/10/18


NOTION DE VARIABLE
17

C’est quoi, une variable ?


Une variable est un emplacement dans la

mémoire centrale (une "case") qui est


utilisé pour stocker une donnée.
Une variable a un nom qui lui est associé.

C'est son identificateur.


On peut l'assimiler à un tiroir qui porte

une étiquette avec un nom.


Le contenu d'une variable peut changer

24/10/18
NOMS DE VARIABLES
18

Identificateurs
En Python, un identificateur est un nom constitué de
lettres (minuscules et majuscules) , de tirets bas (_)
et/ou de chiffres, sauf pour le premier caractère qui ne
doit pas être un chiffre.
 Ex. : prix, car13, _oeuf , 3pom.
Les caractères spéciaux autres que le _ sont interdits
(#,@, &, $...).
Python fait la différence entre les minuscules et les
majuscules. Ex : age, AGE, aGe, Age sont 4
identificateurs différents.
Certains mots sont réservés (mots-clés du langage) et
ne peuvent pas être utilisés comme identificateurs 24/10/18
NOMS DE VARIABLES
19

 Les 33 mots-clés réservés

24/10/18
NOMS DE VARIABLES
20

Conventions de nommage
En plus des règles obligatoires, il existe des règles pour
lesquelles les programmeurs Python se sont mis
d'accord :
Utiliser des noms significatifs. Au lieu de a, b, c, et d,

préférer prix_unitaire, qte, tva, montant.


Ne pas utiliser les lettres l (L minuscule), O ou I (i

majuscule) toutes seules comme nom


 Nommer les variables tout en minuscules
Si un nom de variable est composé, utiliser le tiret bas

pour séparer les mots. Ex : somme_totale


Nommer les constantes (les variables que vous ne

voulez pas changer) TOUT EN MAJUSCULES. 24/10/18


TYPE D’UNE VARIABLE
21

 Une variable a un type, qui correspond au type de


donnée qu‘elle contient

 Dans certains langages, le type d'une variable doit


être fixé avant de l'utiliser : c'est une déclaration qui
empêche la variable de changer de type.

 Dans Python, pas de déclaration obligatoire : le type


d'une variable peut changer si son contenu change
(typage dynamique)

24/10/18
L’AFFECTATION
22

 Tant qu'une variable n'a pas été définie, elle ne peut


pas être utilisée.

 Pour la définir, il faut d'abord mettre une donnée dans


une variable. On peut pour cela utiliser un type
d'instruction spécial : l'affectation (ou assignation).

 L'affectation associe une valeur à une variable

24/10/18
L’AFFECTATION
23

 Syntaxe
 Dans les algorithmes, on note souvent
l'opérateur d'affectation par une flèche
gauche ← ou par :=

 En Python, l'opérateur d'affectation est le


symbole = et se lit « reçoit » (pour ne pas
le confondre avec le symbole d'égalité ==).
La syntaxe de l'instruction est donc :
identificateur = valeur
24/10/18
L’AFFECTATION
24

Exemple 1 :
 Distance = 125

se lit « distance reçoit 125 » ou « la variable


distance reçoit la valeur 125 » et permet de
réserver en mémoire une case (un tiroir), à
laquelle est associé le nom distance (l'étiquette
sur le tiroir) et qui contient une donnée de type
int dont la valeur est 125 (contenu du tiroir).

24/10/18
L’AFFECTATION
25
 En mode interactif

>>> distance = 125


>>>
 L'instruction ne donne pas de réponse => elle a
fonctionné
 Pour vérifier :

>>> distance
125
>>>

L'évaluation de la variable distance a permis


d'obtenir son contenu, sa valeur, affichée par
l'interpréteur. 24/10/18
L’AFFECTATION
26

>>> temps = 10
>>> vitesse = distance / temps
>>> vitesse
12.5
>>>

La valeur affectée à vitesse est évaluée à


partir de l'expression distance/temps.

24/10/18
L’AFFECTATION
27

 Les variables évoluent c.à.d. que la valeur d’une


même variable peut changée au cours du temps.
 Exemple 2 :

>>> vitesse
Traceback (most recent call last) :
File "<pyshell#13>", line 1, in <module>
vitesse
NameError: name 'vitesse' is not defined
>>> vitesse = 120
>>> vitesse
120
>>> vitesse = 90.0
>>> vitesse
90.0
24/10/18
L’AFFECTATION
28

 On peut affecter à une variable une expression qui


contient non seulement des constantes littérales et/ou
d'autres variables mais aussi la même variable, ce qui
peut sembler étrange si on oublie que = n'a pas la
même signification qu'en mathématiques.
 Exemple 3 :
>>> a=5
>>> b=6
>>> a=2*b+3*a # signifie calculer la valeur de
2b+3a et
# remplacer la valeur qui se trouve dans a par le
résultat de ce calcul
>>> a
27
24/10/18
L’AFFECTATION
29

 Une affectation qui est souvent utilisée est celle


qui permet d'augmenter (on dit incrémenter) la
valeur d'une variable de 1 :

 Exemple : compteur = compteur + 1

 De même, on peut décrémenter compteur :


 Exemple : compteur = compteur - 1

24/10/18
L’AFFECTATION
30

 Il existe des instructions d'affectation


augmentée qui permettent de raccourcir ces
écritures.

 Pour incrémenter compteur de 1 : compteur += 1

 Pour décrémenter compteur de 1 : compteur -= 1

 Pour incrémenter compteur de 2 : compteur += 2

24/10/18
L’AFFECTATION
31

 En règle générale : a += b équivaut à a = a + b

 De la même manière :

a -= b <=> a = a - b
a *= b <=> a = a * b
a /= b <=> a = a / b
a //= b <=> a = a // b
a %= b <=> a = a % b
a **= b <=> a = a ** b
24/10/18
PYTHON ET LE TYPAGE
32
DYNAMIQUE
 En python, le type de la variable est déterminé
au moment de son affectation.
 Le type d'une variable peut changer au cours du
temps.
 On peut connaître le type courant d'une variable
avec la fonction type.
 Syntaxe : type(identificateur)

24/10/18
PYTHON ET LE TYPAGE
33
DYNAMIQUE
 Exemple :

>>> vitesse = 90
>>> type(vitesse)
<class 'int'>
>>> vitesse = 90.0
>>> type(vitesse)
<class 'float'>
>>> vitesse = "a l'arret"
>>> type(vitesse)
<class 'str'>

24/10/18
CONVERSION DE TYPE
34

 Il existe plusieurs fonctions qui permettent de


forcer le type d'une variable en un autre type.
 int() : permet de modifier une variable en
entier, provoque une erreur si cela n'est pas
possible,
 float() : permet la transformation en flottant,

 str() : permet de transformer la plupart des


variables d'un autre type en chaînes de
caractère.
 Exemple >>> int(3.14)
3
>>> str(3.14)
’ 3.14 ’
24/10/18
AFFECTER N’EST PAS
35
COMPARER
 affectation : a un effet, n’a pas de valeur
>>> a = 3
>>> b = 2
>>> a = b

 produit un changement (de la valeur de a)


 ne renvoie pas de valeur
 ATTENTION : L’affectation n’est pas commutative (le
sens de lecture se fait toujours de droite à gauche)

>>> a = 1
>>> 1= a File "<stdin>", line 1
SyntaxError : can’t assign to literal
24/10/18
AFFECTER N’EST PAS
36
COMPARER
 comparaison : a une valeur, n’a pas d’effet
>>> a == b
True
>>>

 aucune variable n’est changée


 renvoie une valeur (par exemple, True)
 La comparaison est commutative
>>> a == b
True
>>> b==a
True

24/10/18
AFFECTATIONS MULTIPLES
37
 Sous Python, on peut assigner une valeur a
plusieurs variables simultanément :
>>> a = b = 9
>>> a
9
>>> b
9

 On peut aussi effectuer des affectations


parallèles a l’aide d’un seul opérateur :
>>> a , b = 0.75 , 1
>>> a
0.75
>>> b
1
24/10/18
AFFECTATIONS MULTIPLES
38

 Sous Python, parmi les avantages de l'affectation


parallèle: elle permet d'échanger les valeurs de 2
variables sans avoir à utiliser une troisième
variable.

 Exemple :

>>> a = 2
>>> b=3
>>> a , b = b ,a # échange les valeurs de a et b

24/10/18
OPÉRATEURS ET
39
EXPRESSIONS
 Sous Python, on manipule les valeurs et les variables
qui les référencent en les combinant avec des
opérateurs pour former des expressions .
 Exemple :
>>> a, b = 7.3, 12
>>> y = 3*a + b/5

Dans cet exemple, nous commençons par affecter aux


variables a et b les valeurs 7,3 et 12, ensuite La
seconde ligne de l’exemple consiste à affecter à une
nouvelle variable y le résultat d’une expression qui
combine les opérateurs * , + et / avec les opérandes
a, b, 3 et 5.
24/10/18
EXPRESSIONS
40

Une expression est :


Assemblage de valeurs, variables et opérateurs,

Soumis à une syntaxe précise,

Qui renvoie une valeur dont le type du résultat est

déterminé par le type des variable et les


opérateurs utilisés.

24/10/18
OPÉRATEURS
41

 Un opérateur est un signe qui agit sur une ou


plusieurs valeurs (appelées opérandes), pour
produire un résultat.
 Exemple : + , - , OU , modulo
 Les opérandes sont les valeurs combinées a l’aide
des opérateurs.
 En Python, il existe plusieurs familles d'opérateurs :
 Opérateurs arithmétiques

 Opérateurs alphanumériques

 Opérateurs de comparaison

 Opérateurs logiques

24/10/18
OPÉRATEURS
42
ARITHMÉTIQUES
 Opérateurs arithmétiques
 + : addition
>>> 8+5
13

 - : soustraction
>>> 8-5
3

 * : multiplication
>>> 8*5
40
24/10/18
OPÉRATEURS
43
ARITHMÉTIQUES
 Opérateurs arithmétiques
 ** : puissance
>>> 8**2
64

 % : modulo (calcule le reste d’une division)


>>> 8%5
3

 / : division réelle
>>> 8/5
1.6
24/10/18
OPÉRATEURS
44
ARITHMÉTIQUES
 Opérateurs arithmétiques

 // : division entière
>>> 8//5
1

24/10/18
OPÉRATEURS
45
ARITHMÉTIQUES
Priorité des opérateurs arithmétiques
 Sous Python, les règles de priorité sont les suivantes:
 (), **, *et/, + et –
Vous pouvez les mémoriser a l’aide de l’acronyme
PEMDAS :
 P : pour parenthèses
 E : pour exposant
 M et D : pour multiplication et division, qui ont la même
priorité
 A et S : pour addition et soustraction, qui ont la même
priorité
Si deux opérateurs ont la même priorité, l’évaluation
est effectuée de gauche a droite. 24/10/18
OPÉRATEURS
46
ALPHANUMÉRIQUES
 L'opérateur + sert a concaténer deux chaînes
de caractères c.à.d. mettre bout à bout deux
chaînes de caractères de manière à en former
une troisième.
 Exemple :
>>> c1 = ’ hello ’
>>> c2 = ’ world’
>>> c3=c1+ c2
>>> c3
’ hello world’

24/10/18
OPÉRATEURS
47
ALPHANUMÉRIQUES

 On ne peut concaténer que des chaînes de


caractères

 Si on veut concaténer une chaine de caractères


et une valeur numérique, Il faut d'abord convertir
la valeur numérique en chaine de caractères
avec la fonction str.

24/10/18
OPÉRATEURS
48
ALPHANUMÉRIQUES
 Exemple
>>> age=40
>>> "L’université de Tlemcen à " + age + " ans "
Traceback (most recent call last) :
File "<stdin>", line 1, in (module)
"L’université de Tlemcen à " + age + " ans "
TypeError: Can’t convert ‘int’ object to str
implicity
>>> "L’université de Tlemcen à " + str(age) + " ans "
"L’université de Tlemcen à 40 ans "

24/10/18
OPÉRATEURS
49
ALPHANUMÉRIQUES
 L'opérateur * sert a répéter une même chaîne
de caractères autant de fois qu’on veut.

 Exemple
>>> c1 = ’ Bonjour! ’
>>> c2 = ’ Bonjour! ’ * 3
>>> c2
’ Bonjour! Bonjour! Bonjour! ’
>>> c3 = c1* 3
>>> c3
’ Bonjour! Bonjour! Bonjour! ’
24/10/18
OPÉRATEURS DE
50
COMPARAISON
 == : égale à (=)

>>> 8 == 5
False
>>> 8 == 8
True
>>> 8 == 9 – 1
True

24/10/18
OPÉRATEURS DE
51
COMPARAISON
 != : différent de (≠)

>>> 8 != 5
True
>>> 8 != 8
False
>>> 8 != 9 – 1
False

24/10/18
OPÉRATEURS DE
52
COMPARAISON
 < : Inférieur strictement à (<)
>>> 8 < 2
False
>>> 8 < 9
True

 > : supérieur strictement à (>)


>>> 8 > 5
True
>>> 8 > 9
False
24/10/18
OPÉRATEURS DE
53
COMPARAISON
 <= : Inférieur où égal à (≤)
>>> 8 <= 2
False
>>> 8 <= 8
True
 >= : Supérieur où égal à (≥)
>>> 8 >= 8
True
>>> 8 >= 9
False
>>> a = 20
>>> 10<= a <=35
True
 Le résultat d’un opérateur de comparaison est
de type booléen (bool)
24/10/18
OPÉRATEURS DE
54
COMPARAISON
 Les valeurs comparées peuvent être à priori de
n’importe quel type (numériques, caractères,…) ,
mais la comparaison n’a de sens que si les deux
valeurs comparées sont de même type.

 On peut très bien comparer des caractères (leur


code ASCII est comparé - ordre alphabétique,
avec les majuscules avant les minuscules), et des
chaînes de caractères.

24/10/18
OPÉRATEURS DE
55
COMPARAISON
 Exemple

>>>   " b " < " a "


False
>>> "Chocolat noir " >
"Chocolat blanc"
True

24/10/18
OPÉRATEURS LOGIQUES
56

 Certains problèmes exigent parfois de formuler des


conditions qui ne peuvent pas être exprimées sous
une condition simple.
 Opérateurs logiques :
 and : (Et logique) la condition A and B est True si
à la fois la condition A et la condition B sont True.
 or : (Ou logique) la condition A or B est True si la
condition A ou bien la condition B ou bien les
deux sont True
 not : (Négation logique) la condition not A est
True si la condition A est False, et inversement
24/10/18
OPÉRATEURS LOGIQUES
57

 On représente fréquemment les opérations


logiques dans des tables de vérité.
 On utilise souvent 1 pour représenter True et
0 pour False.

24/10/18
OPÉRATEURS LOGIQUES
58

 Distributivité
 A and (B or C) = (A and B) or (A and C)

 A or (B and C) = (A or B) and (A or C)

 Priorité des opérateurs logiques :


 and est prioritaire sur or

 not est prioritaire sur or et sur and

 Théorème de Morgan :

not (A and B) = (not A) or (not B)


not (A or B) = (not A) and (not B)

24/10/18

Vous aimerez peut-être aussi