chapitre 3 : programmer avec python€¦ · python informatique1 2014-2015 faculté des sciences...

110
CHAPITRE 3 : PROGRAMMER AVEC PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST

Upload: others

Post on 12-Jun-2020

9 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

CHAPITRE 3 :

PROGRAMMER AVEC

PYTHON

Informatique1 2014-2015 Faculté des Sciences

Semestre1 LMD ST

Page 2: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OBJECTIFS

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

14/12/2014

2

Page 3: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

L’HISTOIRE DE PYTHON

1991 : Guido van Rossum, un programmeur

hollandais, publie la version 0.9 du langage Python.

1994 : version 1.0

2000 : version 2.0

2001 : la communauté des développeurs s'organise

=> Python Software Foundation (à but non

lucratif)

2008 : versions 3.0 et 2.6

2009 : versions 3.1 et 2.7

...

nov. 2014 : versions 3.4.2 et 2.7.8

la version 2 n'évolue plus => remplacée

progressivement par la version 3, celle que nous

étudierons

3

Page 4: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

CARACTÉRISTIQUES DE PYTHON

Langage interprété (en partie compilé). 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 : Un*x (GNU/Linux, MacOS X, *BSD...),

Windows, etc.

4

Page 5: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

CARACTÉRISTIQUES DE PYTHON

Langage de programmation de haut niveau facile pour les

programmeurs débutants.

Puissant, permet plusieurs styles de programmation (paradigmes)

pour les programmeurs avancés : impératif, structuré,

procédural, fonctionnel, orienté objet, orienté aspect, etc.

Riche, fourni avec de nombreux modules ("batteries included") :

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.

5

Page 6: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

MODE PROGRAMME

Le programme source Python est écrit dans un fichier texte

d'extension .py (utiliser un éditeur de texte).

L'interpréteur Python est démarré avec le fichier source en

paramètre :

L'interpréteur exécute tout le programme puis sort.

6

$ python3 monprogramme.py

Page 7: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

MODE INTERACTIF

Démarrage de l'interpréteur (dans un terminal):

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())

7

$ python3

Python 3.4.0 (default, Apr 11 2014, 13:05:18)

[GCC 4.8.2] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>>

Page 8: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

MODE INTERACTIF

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.

8

>>> 1295+42

1337

>>>

Page 9: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

MODE INTERACTIF

Si la commande/l'expression n'est pas reconnue : erreur

9

>>> salut

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

NameError: name 'salut' is not defined

>>> 3pi/2

File "<stdin>", line 1

3pi/2

^

SyntaxError: invalid syntax

>>>

Page 10: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

TYPE DE DONNÉES

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

14/12/2014

10

Page 11: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

TYPE DE DONNÉES

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 "

Il existe des types de données plus avancés, que nous

verrons par la suite.

14/12/2014

11

Page 12: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

CONSTANTES LITTÉRALES

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

valeur de type simple.

Une constante littérale est un nombre: 15, 10.25e-6,... 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.

14/12/2014

12

Page 13: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

CONSTANTES LITTÉRALES

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

14/12/2014

13

Page 14: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

CONSTANTES LITTÉRALES

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.

14/12/2014

14

Page 15: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

CONSTANTES LITTÉRALES

Constantes littérales imaginaires :

Elles sont utilisées pour écrire la partie imaginaire des

nombres complexes. Si un nombre complexe a une partie

réelle, on additionne la partie imaginaire à un float

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)

14/12/2014

15

Page 16: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

CONSTANTES LITTÉRALES

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 \

14/12/2014

16

Page 17: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

NOTION DE VARIABLE

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.

14/12/2014

17

Page 18: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

NOTION DE VARIABLE

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

14/12/2014

18

Page 19: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

NOTION DE CONSTANTE

C’est quoi, une constante ?

Dans d'autres langages, certains emplacements mémoires

stockent des constantes, qui contrairement aux variables

ne peuvent pas changer.

En Python, il n'y a pas vraiment de constantes. Mais le

programmeur peut décider d'utiliser certaines variables

comme constantes et de ne pas les changer.

14/12/2014

19

Page 20: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

NOMS DE VARIABLES

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 est « sensible à la casse » : il 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 (cf. diapo suivante)

20

Page 21: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

NOMS DE VARIABLES

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

14/12/2014

21

and del from None True

as elif global nonlocal try

assert else if not while

break except import or with

class False in pass yield

continue finally is raise

def for lambda return

Page 22: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

NOMS DE VARIABLES

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.

14/12/2014

22

Page 23: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

TYPE D’UNE VARIABLE

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)

14/12/2014

23

Page 24: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

L’AFFECTATION

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 (un

tiroir) une variable. On peut pour cela utiliser un type

d'instruction spécial : l'affectation (ou assignation).

L'affectation associe un identificateur (l’étiquette) avec

une variable (tiroir) et une valeur (la donnée contenue

dans le tiroir)

14/12/2014

24

Page 25: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

L’AFFECTATION

Syntaxe

Dans les algorithmes, on note souvent l'opérateur d'affectation

par une flèche gauche ← ou par le même symbole que celui

des langages Pascal et Ada :=

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

14/12/2014

25

Page 26: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

L’AFFECTATION

Exemple 1 :

œuf = 12.50

se lit « œuf reçoit 12.50 » ou « la variable œuf reçoit la valeur

12.50 » et permet de réserver en mémoire une case (un tiroir), à

laquelle est associé le nom œuf (l'étiquette sur le tiroir) et qui

contient une donnée de type float dont la valeur est 12.50

(contenu du tiroir).

14/12/2014

26

Page 27: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

L’AFFECTATION

En mode interactif

L'instruction ne donne pas de réponse => elle a fonctionné

Pour vérifier :

L'évaluation de la variable oeuf a permis d'obtenir son

contenu, sa valeur, affichée par l'interpréteur.

27

>>> oeuf = 12.50

>>>

>>> oeuf

12.5

>>>

Page 28: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

L’AFFECTATION

La valeur affectée à sandwich est évaluée à partir de

l'expression œuf+pain qui additionne les valeurs des

deux autres variables.

14/12/2014

28

>>> pain = 8.50

>>> sandwich = oeuf + pain

>>> sandwich

21.0

Page 29: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

L’AFFECTATION

Les variables évoluent c.à.d. que la valeur d’une même

variable peut changée au cours du temps.

Exemple 2 :

29

>>> vitesse

Traceback (most recent call last) :

File "<stdin>", line 1, in (module)

NameError: name 'vitesse' is not defined

>>> vitesse = 120

>>> vitesse

120

>>> vitesse = 90.0

>>> vitesse

90.0

Page 30: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

L’AFFECTATION

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 :

30

>>> 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

Page 31: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

L’AFFECTATION

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

31

Page 32: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

L’AFFECTATION

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

32

Page 33: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

L’AFFECTATION

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

33

Page 34: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

PYTHON ET LE TYPAGE 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 connaitre le type courant d'une variable avec la

fonction type.

Syntaxe :

type(identificateur)

34

Page 35: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

PYTHON ET LE TYPAGE DYNAMIQUE

Exemple :

35

>>> vitesse = 90

>>> type(vitesse)

<class 'int'>

>>> vitesse = 90.0

>>> type(vitesse)

<class 'float'>

>>> vitesse = "a l'arret"

>>> type(vitesse)

<class 'str'>

Page 36: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

CONVERSION DE TYPE

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

36

>>> int(3.14)

3

>>> str(3.14)

’ 3.14 ’

Page 37: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

AFFECTER N’EST PAS COMPARER

affectation : a un effet, n’a pas de valeur

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)

14/12/2014

37

>>> a = 3

>>> b = 2

>>> a = b

>>> a = 1

>>> 1= a

File "<stdin>", line 1

SyntaxError : can’t assign to literal

Page 38: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

AFFECTER N’EST PAS COMPARER

comparaison : a une valeur, n’a pas d’effet

aucune variable n’est changée

renvoie une valeur (par exemple, True)

La comparaison est commutative

14/12/2014

38

>>> a == b

True

>>>

>>> a == b

True

>>> b==a

True

Page 39: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

AFFECTATIONS MULTIPLES

Sous Python, on peut assigner une valeur a plusieurs variables

simultanément :

On peut aussi effectuer des affectations parallèles a l’aide d’un

seul opérateur :

14/12/2014

39

>>> a = b = 9

>>> a

9

>>> b

9

>>> a , b = 0.75 , 1

>>> a

0.75

>>> b

1

Page 40: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

AFFECTATIONS MULTIPLES

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 :

14/12/2014

40

>>> a = 2

>>> b=3

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

Page 41: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OPÉRATEURS ET 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 :

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 a affecter a 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.

41

>>> a, b = 7.3, 12

>>> y = 3*a + b/5

Page 42: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXPRESSIONS

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.

14/12/2014

42

Page 43: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OPÉRATEURS

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

43

Page 44: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OPÉRATEURS ARITHMÉTIQUES

+ : addition

- : soustraction

* : multiplication

44

>>> 8+5

13

>>> 8-5

3

>>> 8*5

40

** : puissance

% : modulo (calcule le reste

d’une division)

>>> 8 % 5

3

>>> 8**2

64

Opérateurs arithmétiques

Page 45: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OPÉRATEURS ARITHMÉTIQUES

PYTHON 3

/ : division réelle

// : division entière

45

>>> 8/5

1.6

>>> 8/4

2.0

>>> 8 // 5

1

PYTHON 2

/ : division réelle

// : division entière

>>> 8/5

1

>>> 8.0 /5

1.6

>>> 8 // 5

1

Opérateurs arithmétiques

Page 46: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OPÉRATEURS ARITHMÉTIQUES

Priorité des opérateurs arithmétiques

Sous Python, les règles de priorité sont les mêmes que celles

qui vous ont été enseignées au cours de mathématiques. 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.

46

Page 47: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OPÉRATEURS 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 :

14/12/2014

47

>>> c1 = ’ Bonjour ’

>>> c2 = ’ monsieur’

>>> c3=c1+ c2

>>> c3

’ Bonjour monsieur’

Page 48: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OPÉRATEURS 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.

14/12/2014

48

Page 49: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OPÉRATEURS ALPHANUMÉRIQUES

Exemple :

14/12/2014

49

>>> age=40

>>> "L’université de Tlemcen à " + age + " ans "

Traceback (most recent call last) :

File "<stdin>", line 1, in (module)

TypeError: Can’t convert ‘int’ object to str simplicity

>>> "L’université de Tlemcen à " + str(age) + " ans "

"L’université de Tlemcen à 40 ans "

Page 50: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OPÉRATEURS 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

14/12/2014

50

>>> c1 = ’ Bonjour! ’

>>> c2 = ’ Bonjour! ’ * 3

>>> c2

’ Bonjour! Bonjour! Bonjour! ’

>>> c3 = c1* 3

>>> c3

’ Bonjour! Bonjour! Bonjour! ’

Page 51: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OPÉRATEURS DE COMPARAISON

== : égale à (=)

51

>>> 8 == 5

False

>>> 8 == 8

True

>>> 8 == 9 - 1

True

!= : différent de (≠)

>>> 8 != 5

True

>>> 8 != 8

False

>>> 8 != 9 - 1

False

Page 52: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OPÉRATEURS DE COMPARAISON

< : Inférieur strictement à (<)

52

> : supérieur strictement à (>)

>>> 8 > 5

True

>>> 8 > 9

False

>>> 8 < 2

False

>>> 8 < 9

True

Page 53: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OPÉRATEURS DE COMPARAISON

<= : Inférieur où égal à (≤)

53

>= : Supérieur où égal à (≥)

>>> 8 <= 2

False

>>> 8 <= 8

True

>>> 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) .

Page 54: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OPÉRATEURS DE COMPARAISON 54

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.

Page 55: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

OPÉRATEURS DE COMPARAISON 55

Exemple :

>>> "w"<"t"

False

>>> "Chocolat noir " > "Chocolat blanc"

True

Page 56: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

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 a 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

Page 57: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

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.

A B not A A and B A or B

0 0 1 0 0

0 1 1 0 1

1 0 0 0 1

1 1 0 1 1

Page 58: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

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)

Page 59: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES ENTRÉES/SORTIES 59

Pour faire fonctionner un programme il faut lui fournir des

données et prévoir la possibilité de récupérer les résultats.

Ces deux opérations portent le nom générique d’opérations

d’entrée/sortie. Donc il s’agit de deux opérations distinctes:

Entrée de données (Lecture des données par la machine)

Sortie de données (Ecriture de données par la machine)

En python, les opérations d’entrée/sortie sont réalisées par

deux fonctions :

input() : fonction de lecture

print() : fonction d’écriture

Page 60: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES ENTRÉES 60

Les instructions de lecture permettent à l’utilisateur de saisir

des valeurs au clavier pour qu’elles soient utilisées par le

programme.

En python, dés que le programme rencontre la

fonction input() l’exécution s’interrompt, affiche une

éventuelle invite à l’écran et attend que l’utilisateur entre

une donnée au clavier et valide par <entrée>, ensuite

l'exécution reprend.

Page 61: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES ENTRÉES 61

On peut invoquer la fonction input() en laissant les

parenthèses vides. On peut aussi y placer en argument un

message explicatif destiné à l’utilisateur.

Le type de la variable créée par la fonction input() renvoie

toujours une chaine de caractères. Si vous souhaitez que

l’utilisateur entre une valeur numérique, vous devrez donc

convertir la valeur entrée (qui sera donc de toute façon de

type string) en une valeur numérique du type qui vous

convient, par l’intermédiaire des fonctions intégrées int() (si

vous attendez un entier) ou float() (si vous attendez un réel).

Page 62: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES ENTRÉES 62

Exemple 1 :

>>> input()

5

’5’

>>>input(’entrez un entier’)

entrez un entier : 10

’10’

Page 63: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES ENTRÉES 63

Exemple 2 :

>>> f1 = input(‘entrez un reel : ‘)

entrez un reel : 3.14159

>>> f2 = f1 * 2

>>> f3 = f1 / 3

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: unsupported operand type(s) for /: 'str' and 'int‘

>>> type (f1)

(class ‘str’)

Page 64: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES ENTRÉES 64

Exemple 2 (suite) :

>>> print(f2)

3.141593.14159

>>> f1 = float(f1)

>>> type(f1)

<class 'float'>

>>> f2, f3 = f1 * 2, f1 / 3

>>> print(f2, f3)

6.28318 1.0471966666666666

Page 65: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES SORTIES 65

Les instructions d’écriture permettent au programme de

communiquer des valeurs ou messages à l’utilisateur en les

affichant à l’écran.

En Python l'affichage se fait de deux manières :

La première consiste a entrer au clavier le nom de la

variable, puis <Enter>. Python répond en affichant la valeur

correspondante

Exemple

>>> age = 40

>>> age

40

Page 66: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES SORTIES 66

La deuxième façon se fait avec la fonction print suivi de

parenthèses, qui s'utilise à l’intérieur d’un programme ou en

mode interactif.

Exemple

>>> print (’Bonjour tout le monde’)

Bonjour tout le monde

>>> print(3)

3

Page 67: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES SORTIES : AFFICHAGE DE

VARIABLES 67

Si on affiche une variable, sa valeur est affichée.

Exemple

>>> age=4.5

>>> print (age)

4.5

>>> nom = ’Omar’

>>> print (nom)

Omar

>>> print (nom,age)

Omar 4.5

Page 68: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES SORTIES : AFFICHAGE DE

VARIABLES 68

La fonction print permet d’afficher n’importe quel nombre

de valeurs fournies en arguments (c’est-a-dire entre les

parenthèses). Par défaut, ces valeurs seront séparées les

unes des autres par un espace, et le tout se terminera par

un saut a la ligne.

On peut remplacer le séparateur par défaut (l’espace) par

un autre caractère quelconque (ou même par aucun

caractère), grâce a l’argument ≪ sep ≫.

De même, on peut remplacer le saut à la ligne terminal

avec l’argument ≪ end ≫ .

Page 69: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES SORTIES : AFFICHAGE DE

VARIABLES 69

Exemple

>>> print("Bonjour", "a", "tous", sep ="*")

Bonjour*a*tous

print("Bonjour", "a", "tous", sep ="")

Bonjouratous

>>> print (a,b,c,sep=’’)

234

>>>i=5

>>> print (i,end=’’)

5 >>>

Page 70: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES SORTIES : AFFICHAGE MIXTE 70

Pour afficher des messages comportant du texte et des valeurs

numériques, il y a plusieurs méthodes.

Exemple 1 : Méthode 1

Ici dans l'exemple 1, la fonction print est appelée avec un seul

argument qui est le résultat de la concaténation de 3 chaînes de

caractères.

>>> age=3

>>> print (‘Omar a ’ + str(age) + ‘ ans’)

Omar a 3 ans

>>>

Page 71: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES SORTIES : AFFICHAGE MIXTE 71

Exemple 2 : Méthode 2

Dans l'exemple 2, la fonction print est appelée avec 3 paramètres

(séparés par des virgules). Elle sépare automatiquement

l'affichage de ces arguments par un espace

L’affichage de print est terminé par un retour à la ligne.

>>> age=3

>>> print (‘Omar a’ , age , ‘ans’)

Omar a 3 ans

>>>

Page 72: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES SORTIES : AFFICHAGE MIXTE 72

Affichage par chaîne de formattage

Le message remplace toutes les valeurs par l'indication de

leur format. Les valeurs sont données a part dans une liste.

La liste est séparée du message par le caractère %.

La liste des principaux formats possibles :

%d : entier

%f : flottant

%s : chaîne de caractères

%r : booléen

Page 73: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES SORTIES : AFFICHAGE MIXTE 73

Exemple :

>>> age=3

>>> message=‘Omar a %d ans’ %age

>>> print (message)

Omar a 3 ans

>>>print(" l’année prochaine il aura %d ans " %(age+1) )

L’année prochaine il aura 4 ans

>>> nom= ’ Omar ’

>>> message=‘%s a %d ans’ %(nom,age)

>>>print(message)

Omar a 3 ans

Page 74: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES SORTIES : LES SÉQUENCES

D’ÉCHAPPEMENT 74

À l’intérieur d’une chaîne, le caractère antislash (\) permet

de donner une signification spéciale à certaines séquences

de caractères :

Séquence Signification

\\ affiche un antislash

\’ Affiche une apostrophe

\’’ Affiche un guillemet

\n Permet un saut de ligne

\t Permet une tabulation

Page 75: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES SORTIES : LES SÉQUENCES

D’ÉCHAPPEMENT 75

Exemple 1 :

>>>print(" Guido à dit : "bonjour" " )

File "<stdin>", line 1

print(" Guido à dit : "bonjour" " )

^

SyntaxError : invalid syntax

>>> print(" Guido à dit : \"bonjour\" " )

Guido à dit : "bonjour"

Page 76: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES SORTIES : LES SÉQUENCES

D’ÉCHAPPEMENT 76

Exemple 2 :

>>>print(’Guido à dit c’est bien ’ )

File "<stdin>", line 1

print(’ Guido à dit c’est bien ’ )

^

SyntaxError : invalid syntax

>>> print(’ Guido à dit c\’est bien ’ )

Guido à dit c’est bien

Page 77: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES COMMENTAIRES 77

Comme tout langage évolué, Python permet la présence de

commentaires dans un programme.

Les commentaires sont des textes explicatifs destinés aux

lecteurs du programme et ne seront pas lu par la machine.

Il faut les utiliser pour :

Annoter le code

Séparer les différentes parties du code

Indiquer le rôle de chaque variable (indispensable dés qu'on a

beaucoup de variables)

Page 78: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

LES COMMENTAIRES 78

En Python les commentaires commencent toujours par le

caractère # jusqu'a la fin de la ligne.

Exemple :

# Ceci est un commentaire

age=20 # affecter la valeur 20 à la variable age

print (age) # pour afficher la variable age on utilise la

# fonction print

Page 79: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

IMPORTER UN MODULE DE

FONCTIONS 79

Vous avez déjà rencontré des fonctions intégrées au

langage lui-même, comme la fonction abs() par exemple,

qui permet de connaitre la valeur absolue d’un nombre.

Cependant il n’est pas possible d’intégrer toutes les

fonctions dans le corps standard de Python, car il en existe

une infinité.

Les fonctions intégrées au langage sont relativement peu

nombreuses : ce sont seulement celles qui sont susceptibles

d’être utilisées très fréquemment.

Les autres sont regroupées dans des fichiers séparés que

l’on appelle des modules .

Page 80: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

IMPORTER UN MODULE DE

FONCTIONS 80

Les modules sont des fichiers qui regroupent des ensembles

de fonctions.

Il existe un grand nombre de modules qui sont fournis

d’office avec Python. Souvent on essaie de regrouper dans

un même module des ensembles de fonctions apparentées,

que l’on appelle des bibliothèques.

Le module math, par exemple, contient les définitions de

nombreuses fonctions mathématiques telles que sinus,

cosinus, tangente, racine carrée, etc.

Page 81: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

IMPORTER UN MODULE DE

FONCTIONS 81

Pour pouvoir utiliser ces fonctions, il vous suffit d’incorporer

la ligne suivante au début de votre programme :

from math import *

Cette ligne indique a Python qu’il lui faut inclure dans le

programme courant toutes les fonctions (c’est la signification du

symbole * ) du module math, lequel contient une bibliothèque de

fonctions mathématiques pré-programmées.

Page 82: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

IMPORTER UN MODULE DE

FONCTIONS 82

Exemple :

>>> sqrt(4)

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

NameError: name 'sqrt' is not defined

>>> from math import*

>>> sqrt(4)

2.0

Page 83: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICES ET

APPLICATIONS

14/12/2014

83

Page 84: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 1 : 84

Ecrivez un programme python qui permet d’affecter les

variables temps et distance par les valeurs 6.892 et

19.7 , et calculer la valeur de la vitesse. L’affichage,

après l’exécution de ce programme, devra se présenter

selon la forme suivante :

* * * * * Exercice1 * * * * *

La valeur de la vitesse est : 2.8583865351131745

Page 85: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 1 : SOLUTION 85

print('* * * * * Exercice1 * * * * *') # affichage

temps = 6.892 # affectation

distance = 19.7 # affectation

vitesse = distance/temps # affectation

print ("La valeur de la vitesse est : ", vitesse) # affichage

Pour l’affichage avec print il y a deux autres solutions :

print ("La valeur de la vitesse est : " + str(vitesse))

print ("La valeur de la vitesse est : %f" %vitesse)

Page 86: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 2 : 86

Ecrivez un programme python qui à partir du temps et de

la distance fournis en données , permet de calculer la

vitesse. L’affichage, après l’exécution de ce programme,

devra se présenter selon la forme suivante :

* * * * * Exercice2 * * * * *

temps = 2.386

distance = 18.5

* * * * * * * * * * * * * * * * *

vitesse = 7.753562447611064

N.B : Dans l’affichage du programme, les chiffres en gras

représentent les nombres introduits au clavier par l’utilisateur.

Page 87: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 2 : SOLUTION 87

print('* * * * * Exercice2 * * * * *')

distance = float(input('distance = '))

temps = float(input("temps = "))

vitesse = distance/temps

print('* * * * * * * * * * * * * * * *')

print('vitesse = ' ,vitesse)

Remarque: lors de la lecture des variables réelles, nous

utilisons "float" pour convertir la lecture d’une chaîne de

caractères par un réel

Page 88: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 3 : 88

Ecrivez un programme Python qui demande à l'utilisateur de

taper 5 entiers et qui affiche leur moyenne. L’affichage,

après l’exécution de ce programme, devra se présenter

selon la forme suivante :

Tapez la valeur numéro 1 = 6

Tapez la valeur numéro 2 = 10

Tapez la valeur numéro 3 = 36

Tapez la valeur numéro 4 = 2

Tapez la valeur numéro 5 = 7

La moyenne de 6, 10, 36, 2 et 7 vaut : 12.2

Page 89: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 3 : SOLUTION 89

a = int (input('Tapez la valeur numéro 1 = '))

b = int (input('Tapez la valeur numéro 2 = '))

c = int (input('Tapez la valeur numéro 3 = '))

d = int (input('Tapez la valeur numéro 4 = '))

e = int (input('Tapez la valeur numéro 5 = '))

s= a+b+c+d+e

m=s/5

print('la moyenne de ' , a, ',' , b , ',' , c , ',' , d , 'et' , e , ' vaut : ',m)

Remarque: lors de la lecture des variables entières, nous

utilisons "int" pour convertir la lecture d’une chaîne de

caractères par un entier.

Page 90: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 4 : 90

Ecrivez un programme Python qui demande à l'utilisateur de

taper 5 entiers et qui affiche leur moyenne, le programme

ne devra utiliser que 2 variables. L’affichage, après

l’exécution de ce programme, devra se présenter selon la

forme suivante :

Tapez la valeur numéro 1 = 6

Tapez la valeur numéro 2 = 10

Tapez la valeur numéro 3 = 36

Tapez la valeur numéro 4 = 2

Tapez la valeur numéro 5 = 7

La moyenne vaut : 12.2

Page 91: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 4 : SOLUTION 91

a = int (input('Tapez la valeur numéro 1 = '))

s = 0

s = s+a

a = int (input('Tapez la valeur numéro 2 = '))

s = s+a

a = int (input('Tapez la valeur numéro 3 = '))

s = s+a

a = int (input('Tapez la valeur numéro 4 = '))

s = s+a

a = int (input('Tapez la valeur numéro 5 = '))

s = s+a

s = s/5

print('la moyenne vaut : ',s)

Page 92: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 5 : 92

Ecrivez un programme Python qui demande à l'utilisateur de

saisir son nom et son année de naissance et qui affiche son

âge. L'année courante sera mise dans une variable.

L’affichage, après l’exécution de ce programme, devra se

présenter selon la forme suivante :

Mohammed votre âge est 20 ans

N.B : Dans l’affichage du programme, les caractères et chiffres en

gras représentent les nombres introduits au clavier par l’utilisateur.

Page 93: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 5 : SOLUTION 93

nom=input('entrez votre nom')

annee_naissance= int(input('entrez votre année de naissance'))

annee_courante=2014

age=annee_courante-annee_naissance

print(nom,"votre âge est",age,"ans")

Page 94: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : 94

Analysez le programme Python suivant et essayer de

deviner son affichage après l’exécution .

Essayer d’aligner l’affichage en utilisant la méthode des

chaînes de formatages.

Page 95: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : 95

prod1, prix1 = "oeuf", 12

prod2, prix2 = "pain", 8

prod3, prix3 = "camembert", 160

prod4, prix4 = "pistache", 1250

print("Alimentation Générale")

print("=" * 21)

print() # affiche une ligne vide

print("%s coûte %d DA" % (prod1, prix1))

print("%s coûte %d DA" % (prod2, prix2))

print("%s coûte %d DA" % (prod3, prix3))

print("%s coûte %d DA" % (prod4, prix4))

Page 96: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 96

Alimentation Générale

=====================

oeuf coûte 12 DA

pain coûte 8 DA

camembert coûte 160 DA

pistache coûte 1250 DA

Page 97: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 97

prod1, prix1 = "oeuf", 12

prod2, prix2 = "pain", 8

prod3, prix3 = "camembert", 160

prod4, prix4 = "pistache", 1250

print("Alimentation Générale")

print("=" * 21)

print() # affiche une ligne vide

print("%10s coûte %d DA" % (prod1, prix1))

print("%10s coûte %d DA" % (prod2, prix2))

print("%10s coûte %d DA" % (prod3, prix3))

print("%10s coûte %d DA" % (prod4, prix4))

Page 98: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 98

Alimentation Générale

=====================

oeuf coûte 12 DA

pain coûte 8 DA

camembert coûte 160 DA

pistache coûte 1250 DA

Page 99: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 99

prod1, prix1 = "oeuf", 12

prod2, prix2 = "pain", 8

prod3, prix3 = "camembert", 160

prod4, prix4 = "pistache", 1250

print("Alimentation Générale")

print("=" * 21)

print() # affiche une ligne vide

print("%-10s coûte %5d DA" % (prod1, prix1))

print("%-10s coûte %5d DA" % (prod2, prix2))

print("%-10s coûte %5d DA" % (prod3, prix3))

print("%-10s coûte %5d DA" % (prod4, prix4))

Page 100: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 100

Alimentation Générale

=====================

oeuf coûte 12 DA

pain coûte 8 DA

camembert coûte 160 DA

pistache coûte 1250 DA

Page 101: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 101

prod1, prix1 = "oeuf", 12

prod2, prix2 = "pain", 8.5

prod3, prix3 = "camembert", 160

prod4, prix4 = "pistache", 1250

print("Alimentation Générale")

print("=" * 21)

print() # affiche une ligne vide

print("%-10s coûte %5d DA" % (prod1, prix1))

print("%-10s coûte %5d DA" % (prod2, prix2))

print("%-10s coûte %5d DA" % (prod3, prix3))

print("%-10s coûte %5d DA" % (prod4, prix4))

Page 102: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 102

Alimentation Générale

=====================

oeuf coûte 12 DA

pain coûte 8 DA

camembert coûte 160 DA

pistache coûte 1250 DA

Page 103: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 103

prod1, prix1 = "oeuf", 12

prod2, prix2 = "pain", 8.5

prod3, prix3 = "camembert", 160

prod4, prix4 = "pistache", 1250

print("Alimentation Générale")

print("=" * 21)

print() # affiche une ligne vide

print("%-10s coûte %5f DA" % (prod1, prix1))

print("%-10s coûte %5f DA" % (prod2, prix2))

print("%-10s coûte %5f DA" % (prod3, prix3))

print("%-10s coûte %5f DA" % (prod4, prix4))

Page 104: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 104

Alimentation Générale

=====================

oeuf coûte 12.000000 DA

pain coûte 8.500000 DA

camembert coûte 160.000000 DA

pistache coûte 1250.000000 DA

Page 105: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 105

prod1, prix1 = "oeuf", 12

prod2, prix2 = "pain", 8.5

prod3, prix3 = "camembert", 160

prod4, prix4 = "pistache", 1250

print("Alimentation Générale")

print("=" * 21)

print() # affiche une ligne vide

print("%-10s coûte %5.2f DA" % (prod1, prix1))

print("%-10s coûte %5.2f DA" % (prod2, prix2))

print("%-10s coûte %5.2f DA" % (prod3, prix3))

print("%-10s coûte %5.2f DA" % (prod4, prix4))

Page 106: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 106

Alimentation Générale

=====================

oeuf coûte 12.00 DA

pain coûte 8.50 DA

camembert coûte 160.00 DA

pistache coûte 1250.00 DA

Page 107: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 107

prod1, prix1 = "oeuf", 12

prod2, prix2 = "pain", 8.5

prod3, prix3 = "camembert", 160

prod4, prix4 = "pistache", 1250

print("Alimentation Générale")

print("=" * 21)

print() # affiche une ligne vide

print("%-10s coûte %8.2f DA" % (prod1, prix1))

print("%-10s coûte %8.2f DA" % (prod2, prix2))

print("%-10s coûte %8.2f DA" % (prod3, prix3))

print("%-10s coûte %8.2f DA" % (prod4, prix4))

Page 108: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 108

Alimentation Générale

=====================

oeuf coûte 12.00 DA

pain coûte 8.50 DA

camembert coûte 160.00 DA

pistache coûte 1250.00 DA

Page 109: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 109

prod1, prix1 = "oeuf", 12

prod2, prix2 = "pain", 8.5

prod3, prix3 = "camembert", 160

prod4, prix4 = "pistache", 1250

print("Alimentation Générale")

print("=" * 21)

print() # affiche une ligne vide

print("%-10s coûte %-8.2f DA" % (prod1, prix1))

print("%-10s coûte %-8.2f DA" % (prod2, prix2))

print("%-10s coûte %-8.2f DA" % (prod3, prix3))

print("%-10s coûte %-8.2f DA" % (prod4, prix4))

Page 110: CHAPITRE 3 : PROGRAMMER AVEC PYTHON€¦ · PYTHON Informatique1 2014-2015 Faculté des Sciences Semestre1 LMD ST. OBJECTIFS Apprendre les concepts de base de l'algorithmique et de

EXERCICE 6 : SOLUTION 110

Alimentation Générale

=====================

oeuf coûte 12.00 DA

pain coûte 8.50 DA

camembert coûte 160.00 DA

pistache coûte 1250.00 DA