Vous êtes sur la page 1sur 59

Initiation au langage Python

Dr. Vivient Corneille Kamla


Départment de Mathématiques et Informatique, ENSAI
Université de Ngaoundéré; Cameroun

Cours Magistral; ENS


Année Académique 2018-2019

Vivient C. Kamla () Python AC : 2018-2019 1 / 58


Plan

Plan

1 Présentation de Python

2 Les types et les opérations de bases

3 Les opérations d’entrées /sorties standard

4 Structuration et indentation

5 Les structurations algorithmiques fondamentales

6 References

Vivient C. Kamla () Python AC : 2018-2019 2 / 58


Présentation de Python Les caractéristiques

Quelques caractéristiques du langage Python (1/2)

développé en 1989 par Guido van Rossum


pas de déclaration de types : déclaration à l’affectation
trés clair, syntaxe lisible, expression naturelle de code
procédural
modularité totale, avec paquets hiérarchiques
de nombreux types de base : listes, chaines, tables de
hachage
gestion transparente de la mémoire par référence
comptage
vaste bibliothèques standard et des modules de tierces
parties
multi-threadé (optionnellement)
orienté objet : classes, héritage simple, héritage multiple
Vivient C. Kamla () Python AC : 2018-2019 3 / 58
Présentation de Python Les caractéristiques

Quelques caractéristiques du langage Python (2/2)

lambda-calcul, fonctions anonymes


gestion des exceptions
open-source : code source accessible à tous.
portable : le même code est utilisé sur plusieurs Systèmes
d’Exploitations.
vaste bibliothèques standard et des modules de tierces
parties
dynamique : l’interpréteur peut évaluer des chaines de
caractères représentant des expressions ou des instructions
Python.
extensible : on peut facilement l’interfacer avec des
bibliothèques C existantes.
support pour l’intégration d’autres langages.
intégrable : dans les applications comme scripts d’interfacage
Vivient C. Kamla () Python AC : 2018-2019 4 / 58
Présentation de Python Les modes d’exécution

Modes d’exécution

Un langage interprété
Le programme python en mode interactif ;
Le programme ipython : un shell Python évolué ;
La fonction eval pour évaluer du code dans python

Un langage compilé
Compilation en bytecode de machine virtuelle (comme Java) ;
Les fichiers .pyc sont générés dynamiquement

Vivient C. Kamla () Python AC : 2018-2019 5 / 58


Présentation de Python Les modes d’exécution

Modes d’exécution (2/2)

Avantages
interprétation permettant de tester n’importe qu’elle petit bout
de code ;
compilation transparentes ;

Inconvénient
peut être lent ;

Vivient C. Kamla () Python AC : 2018-2019 6 / 58


Présentation de Python Les différentes implémentations

Les différentes implémentations de Python

CPython : Implémentation de base basée sur le langage C


ANSI ;
Jython : Implémentation permettant de mixer Python et java
dans la même JVM ;
IronPython : Implémentation permettant d’utiliser Python
pour Microsoft .NET ;
PYPY : Implémentation de Python en Python ;
CLPython : Implémentation de Python en Common Lisp.

Vivient C. Kamla () Python AC : 2018-2019 7 / 58


Présentation de Python Les différentes implémentations

Les différentes versions

Il existe 2 version de Python : 2.7 et 3.1 ;


Python 3.x n’est pas une simple amélioration ou extension de
Python 2.x ;
Tant que les auteurs de librairies n’auront pas effectue la
migration, les deux versions devront coexister ;

Vivient C. Kamla () Python AC : 2018-2019 8 / 58


Présentation de Python Les modes d’utilisation de Python

Utilisation de Python

Types d’utilisation de Python


Comme la majorité des langages de script, Python est utilisé de deux
manières :
mode interactif ;
mode script ou programme ;

Vivient C. Kamla () Python AC : 2018-2019 9 / 58


Présentation de Python Les modes d’utilisation de Python

Utilisation de Python

Utilisation de Python en mode interactif


Les commandes entrées par l’utilisateur sont évaluées au fur et à
mesure.
Le mode interactif est pratique pour :
réaliser des prototypes ;
tester tout ou partie d’un programme ;
interagir aisément et rapidement avec des structures de données
complexes.

Vivient C. Kamla () Python AC : 2018-2019 10 / 58


Présentation de Python Les modes d’utilisation de Python

Utilisation de Python en mode interactif

Bon a savoir
En Python, tout est objet. Les commandes suivantes sont très utilises
en mode interactif
dir permet de voir les objets et méthodes disponibles
help permet d ;avoir une aide
type permet de connaitre le type de l’objet
id permet d’avoir l’adresse d’un objet
eval permet d’évaluer une chaine de caractères
input et raw input sont l’équivalent du scanf en C.

Vivient C. Kamla () Python AC : 2018-2019 11 / 58


Présentation de Python Les modes d’utilisation de Python

Utilisation de Python

Utilisation de Python en mode script


Les instructions à évaluer par l’interprété sont sauvegardées,
comme n’importe quel programme informatique, dans un fichier.
L’utilisateur doit saisir l’intégralité des instructions qu’il souhaite
voir évaluer à l’aide de son éditeur de texte favori, puis
demander leur exécution à l’interprété.
Les fichiers Python sont identifiés par l’extension .py.

Vivient C. Kamla () Python AC : 2018-2019 12 / 58


Présentation de Python Les modes d’utilisation de Python

Interpréteur de Python

Sous Linux

Figure: Interpréteur classique Figure: Interpréteur ipython

Vivient C. Kamla () Python AC : 2018-2019 13 / 58


Présentation de Python Les modes d’utilisation de Python

Options utiles de l’interpréteur classique

Options utiles de l’interpréteur classique


-c : exécute la commande Python entrée après ;
-i :passe en mode interactif apres avoir executer un script ou une
commande ;
-d : passe en mode debug.

Vivient C. Kamla () Python AC : 2018-2019 14 / 58


Présentation de Python Les modes d’utilisation de Python

Que peut-on faire avec Python ?

web : Django, TurboGears, Zope, Plone,... ;


bases de données :MySQL, ProstgreSQL, Oracle,... ;
réseaux : TwistedMatrix, PyRO,...
Gui : Gtk, Qt, Tcl/Tk, WxWidgets,...
représentation graphique : gnuplot, matplotlib, VTK,...
calcul scientifique : numpy, scipy, sage,...
...

Vivient C. Kamla () Python AC : 2018-2019 15 / 58


Présentation de Python Les modes d’utilisation de Python

Pourquoi utiliser Python pour le calcul scientifique ?

peut être appris en quelques jours ;


permet de faire des tests rapides ;
alternative a Matlab, Octave, Scilab,...
parallélisation ;
tourne sur la plupart des plates formes ;
très bon support pour le calcul scientifique.

Vivient C. Kamla () Python AC : 2018-2019 16 / 58


Les types et les opérations de bases

Plan

1 Présentation de Python

2 Les types et les opérations de bases

3 Les opérations d’entrées /sorties standard

4 Structuration et indentation

5 Les structurations algorithmiques fondamentales

6 References

Vivient C. Kamla () Python AC : 2018-2019 17 / 58


Les types et les opérations de bases

Les principaux types en Python

les entiers ;
les réels ou flottants ;
les booléens ;
les chaines de caractères ;
les listes ;
les dictionnaires.

Vivient C. Kamla () Python AC : 2018-2019 18 / 58


Les types et les opérations de bases Les nombres

Les nombres : types et opérations

Les différents types de nombres en Python


entiers, avec une taille mémoire de 32 bits
entiers long, avec une taille mémoire de 64 bits
réels, avec une taille mémoire de 64 bits
complexes, avec une taille mémoire de 2*64 bits
booléens, avec une taille mémoire de 1 bits.

Vivient C. Kamla () Python AC : 2018-2019 19 / 58


Les types et les opérations de bases Les nombres

Les nombres : types et opérations


Les opérations de bases sur les nombres
Les opérateurs addition, soustraction, multiplication et
modulo
+, -, *, %,
Les opérateurs puissance, valeur absolue
**,pow, abs
Les opérateurs de comparaison
==, is, !=, is not, >, >=, <, <=
Les opérateurs bitwise
&, ˆ , |, < <, > >
Les opérateurs logiques
or, and, not
Vivient C. Kamla () Python AC : 2018-2019 20 / 58
Les types et les opérations de bases Les données composites

Les données composites : définitions et exemples

Définition : Donnée composite


Une donnée composite est une structure de données qui est utilisée
pour regrouper de manière structures des ensembles de valeurs. En
Python, il existe plusieurs types de donnée composite.

Exemples de types de donnée composite en Python


Les chaı̂nes de caractères
les listes
les typles
les dictionnaires

Vivient C. Kamla () Python AC : 2018-2019 21 / 58


Les types et les opérations de bases Les données composites

Les chaı̂nes de caractères

Le type string
Une donnée de type string peut se définir en première approximation
comme une suite quelconque de caractères. Dans un script Python,
on peut délimiter une telle suite de caractères, soit par des
apostrophes (simple quotes), soit par des guillemets (double quotes).

Exemples de chaı̂nes de caractères


simple quotes : ’les oeufs durs’
double quotes : ”les oeufs durs”

Vivient C. Kamla () Python AC : 2018-2019 22 / 58


Les types et les opérations de bases Les données composites

Les chaı̂nes de caractères

les chaı̂nes qui ont les doubles quotes


Les simples quotes sont utilisées pour délimiter les chaı̂nes qui ont
les doubles quotes
Exemples de chaı̂nes qui ont les doubles quotes
’”Nést-ce pas ?” répondit-elle.’
’”oui”, répondit-il’

les chaı̂nes qui ont les simples quotes


Les doubles quotes sont utilisées pour délimiter les chaı̂nes qui ont
les simple quotes
Exemples de chaı̂nes qui ont les doubles quotes
”N’ est-ce pas ? répondit-elle.”
”j’aime bien”
Vivient C. Kamla () Python AC : 2018-2019 23 / 58
Les types et les opérations de bases Les données composites

Les chaı̂nes de caractères : Manipulation


Concaténation de deux chaı̂nes de caractères
L’opérateur + est utilisé pour la concaténation de deux chaı̂nes
Exemples de concaténation de chaı̂nes de caractères
’papa ’ + ’ et ’ + ’ mama’ == ’papa et mama’
ch1 =’i vaut ’, ch2 = ’ 4’ ; ch3 = ch1 + ch2== ’i vaut 4’
Accès à un caractère ou sous chaı̂nes d’une chaı̂nes
L’opérateur [ ] est utilisé pour accéder à un caractère ou à une sous
chaı̂nes.
Exemples
”bonjour”[3]== ’j’ ; ”bonjour”[-1] == ’r’.
”bonjour”[3 :]== ’jour’ ; ”bonjour”[ :3] == ’bon’ ;
”bonjour”[0 :3] == ’bon’.
”bonjour”[-1 : :-1]== ’ruojnob’
Vivient C. Kamla () Python AC : 2018-2019 24 / 58
Les types et les opérations de bases Les données composites

Les principales méthodes de la classe chaı̂ne de caractères

Soit s un objet de type chaı̂ne de caractères


len(s) : renvoie la taille d’une chaı̂ne,
s.find : recherche une sous-chfs,
s.rstrip : enlève les espaces de fin,
s.replace : remplace une chaı̂ne par une autre.
s.split : découpe une chaı̂ne,
s.isdigit : renvoie True si la chaı̂ne contient que de nombres et
False
... :

Vivient C. Kamla () Python AC : 2018-2019 25 / 58


Les types et les opérations de bases Les données composites

Les listes

Le type liste : définition


Sous Python, on peut définir une liste comme une collection
d’éléments séparés par des virgules, l’ensemble étant enferme dans
des crochets.

Exemples de listes
a= [ ], b = list()
j= [’lundi’,’mardi’, ’mercredi’,1800, 12.5,’jeudi’, ’vendredi’]
tab= [1,2,3,4,5], [’point’,’triangle’, ’carré’]
L1 = range(10) ; L2= range(2,10,2,6,0)

Vivient C. Kamla () Python AC : 2018-2019 26 / 58


Les types et les opérations de bases Les données composites

Opérations sur Les listes (1/2)

Concaténation de listes avec les opérateurs + et *


sept zeros = [0]*5 == [0,0,0,0,0] ;
L1 = [1,2,3], L2 = [3,4,5] et L3 = L1+ L2 == [1,2,3,3,4,5]

Accès a un élément de la liste : Opérateur crochets


L1 = [1,2,3] ; L1[0] == 1 ; L1[2]==3
L2 = L1[a :b] : L2 est une liste dont les éléments L1[a],L1[a+1],
· · · , L1[b-1] ;
L2 = L1[ :] : L2 et L1 sont deux listes ayant le même contenu.
L2 = L1[a :]== L2 = L1[a :n], avec, n le nombre d’éléments de
L1.

Vivient C. Kamla () Python AC : 2018-2019 27 / 58


Les types et les opérations de bases Les données composites

Opérations sur Les listes (2/2)

ATTENTION : affectation et recopie


Soient L1 et L2, deux listes Sous Python. Les instructions suivantes
ne sont pas identiques :
L1 = L2 : L1 pointe maintenant sur la zone pointée par L2.
L1 = L2[ :] : Le contenu de la zone pointée par L1 est
maintenant identique à celui de la zone pointée par L2.

Exemples
Soit L1 = [1,2,3] et L2 = [3,4,5] on a :
L1 = L2 ; donne : ( L1 = [3,4,5] et L2 = [3,4,5]) et
L1[1]= 8 qui donne ( L1 = [3,8,5] et L2 = [3,8,5])
L1 = L2[ :] ; donne : ( L1 = [3,4,5] et L2 = [3,4,5]) et
L1[1]= 8 qui donne ( L1 = [3,8,5] et L2 = [3,4,5])

Vivient C. Kamla () Python AC : 2018-2019 28 / 58


Les types et les opérations de bases Les données composites

Les principales méthodes d’un objet liste

Les principales méthodes d’un objet liste


Soit L un objet de type liste on a :
len(L) : renvoie la taille de la liste L,
L.sort : trier la liste L,
L.append : ajout d’un élément a la fin de la liste L,
L.reverse : inverser la liste L.
L.index : rechercher un élément dans la liste L.
L.remove : retirer un élément de la liste L.
L.pop : retirer le dernier élément de la liste L.

Vivient C. Kamla () Python AC : 2018-2019 29 / 58


Les types et les opérations de bases Les données composites

Les tuples

Le type tuple : définition


Sous Python, on peut définir un tuple comme une collection
d’éléments séparés par des virgules, l’ensemble étant enferme dans
des parenthèses. Un tuple est aussi une séquence.

Exemples de tuples
a= ( ), b = tuple()
j= (’lundi’,’mardi’, ’mercredi’,1800, 12.5,’jeudi’, ’vendredi’)
tab= (1,2,3,4,5), (’point’,’triangle’, ’carré’)

Vivient C. Kamla () Python AC : 2018-2019 30 / 58


Les types et les opérations de bases Les données composites

Opérations sur Les tuples (1/2)

Concaténation de tuples avec les opérateurs + et *


t= (1,2)*3 == (1,2,1,2,1,2) ;
t1 = (1,2,3), L2 = (3,4,5) et L3 = L1+ L2 == (1,2,3,3,4,5)

Accès à un élément d’un tuple : Opérateur crochets


t1 = (1,2,3) ; t1[0] == 1 ; t1[2]==3
t2 = t1[a :b] : t2 est une liste dont les éléments t1[a],t1[a+1],
· · · , t1[b-1] ;
t2 = t1[ :] : t2 et t1 sont deux listes ayant le même contenu.
t2 = t1[a :]== t2 = t1[a :n], avec, n le nombre d’éléments
de t1.
NB : Un tuple n’est pas modifiable. Soit t1 = (1,2,3,4,5), un tuple.
t1[1] = 3 génère une erreur.
t1 =
Vivient C. (3,)+t1[1
Kamla () :] = (3,2,3,4,5)
Python AC : 2018-2019 31 / 58
Les types et les opérations de bases Les données composites

Opérations sur Les tuples (2/2)

Une cellule d’un tuple n’est pas modifiable


soit t = (’a’, ’b’, ’c’, ’d’ ) ; un tuple :
t[0] = ’aa’ : est une opération non valide.
t = (’aa’,) + t[ :1] : est une opération valide et on a t qui est
maintenant (’aa’, ’a’, ’b’,’c’,’d’).

Mais un objet modifiable constituant une cellule d’un tuple est


modifiable
soit t = (1, 2, [3,4], 5 ) ; un tuple :
t[2][0] = 6 : nous donne comme résultat t = (1, 2, [6,4], 5 ).
t[2][1] = 7 : nous donne comme résultat t = (1, 2, [6,7], 5 ).

Vivient C. Kamla () Python AC : 2018-2019 32 / 58


Les types et les opérations de bases Les données composites

Les dictionnaires

Le type dictionnaires : définition


Les dictionnaires ressemblent aux listes dans une certaine mesure
(ils sont modifiables comme elles),
Ce ne sont pas des séquences,
Une entrée d’un dictionnaire est un couple constitué d’une clé et
d’une valeur.
Les éléments que nous allons y enregistrer ne seront pas disposés
dans un ordre immuable.
On accédé a une valeur d’un dictionnaire a l’aide de son index
appelé clé
Une clé peut être alphabétique, numérique, ou même de type
composite.

Vivient C. Kamla () Python AC : 2018-2019 33 / 58


Les types et les opérations de bases Les données composites

Parcours et copie d’un dictionnaire

Création d’un dictionnaire


Puisque le type dictionnaire est un type modifiable, nous
pouvons commencer par créer un dictionnaires vide, puis le
remplir petit a petit.
Du point de vue de la syntaxe, on reconnait un dictionnaire au
fait que ses éléments sont enfermes dans une paire d’accolades.

Exemple de création d’un dictionnaire


dico= { } définir un dictionnaire vide
dico[’computer’]=’ordinateur’ ; dico[’mouse’] = ’souris’ ;
dico[’keyboard’]=’clavier’
print(dico) donne {’computer’ :’ordinateur’, ’keyboard’ :
’clavier’, ’mouse’ :’souris’}
Vivient C. Kamla () Python AC : 2018-2019 34 / 58
Les types et les opérations de bases Les données composites

Copie d’un dictionnaire

>>> dico= {’computer’ :’ordinateur’, ’keyboard’ : ’clavier’,


’mouse’ :’souris’} ;
>>> dico2 = dico
>>> dico3 = dico.copy(),
>>> dico2[’printer’] = ’imprimante’
>>> dico2
{’computer’ :’ordinateur’, ’keyboard’ : ’clavier’, ’printer’ :
’imprimante’, ’mouse’ :’souris’}
>>> dico
{’computer’ :’ordinateur’, ’keyboard’ : ’clavier’, ’printer’ :
’imprimante’, ’mouse’ :’souris’}
>>> dico3
{’computer’ :’ordinateur’, ’keyboard’ : ’clavier’, ’mouse’ :’souris’}

Vivient C. Kamla () Python AC : 2018-2019 35 / 58


Les types et les opérations de bases Les données composites

Les principales méthodes d’un dictionnaire(help(dict))

Soit dico un objet de type dictionnaire on a :


len(dico) : taille du dictionnaire,
dico.keys : renvoie les clés du dictionnaire sous forme de liste,
dico.values : renvoie les valeurs du dictionnaire sous forme de
liste,
dico.has key : renvoie True si la clé existe, False sinon
dico.get : donne la valeur de la clé si elle existe, sinon une
valeur par défaut.
...

Vivient C. Kamla () Python AC : 2018-2019 36 / 58


Les types et les opérations de bases Les données composites

Les ensembles

Un ensemble permet de stoker plusieurs valeurs distinctes


>>> A ={1,2,3,3,2,1 }
>>> type(A)
< class 0 set 0 >
>>> A
{1, 2, 3}
>>> B ={2,4 }
>>> A&B
{2}
>>> A|B
{1, 2, 3, 4}
>>> Aˆ B
{1, 34}

Vivient C. Kamla () Python AC : 2018-2019 37 / 58


Les opérations d’entrées /sorties standard

Plan

1 Présentation de Python

2 Les types et les opérations de bases

3 Les opérations d’entrées /sorties standard

4 Structuration et indentation

5 Les structurations algorithmiques fondamentales

6 References

Vivient C. Kamla () Python AC : 2018-2019 38 / 58


Les opérations d’entrées /sorties standard

Les opérations d’entrées/sorties standard

Un programme doit avoir des moyens de communiquer avec


l’extérieur de la seule mémoire vive de l’ordinateur. Les opérations qui
visent a lire des données et à en écrire ailleurs qu’en mémoire vive des
opérations d’entrées/sorties.

Pqrmi les opérations d’entrées/sorties les plus courantes figurent :


la lecture de caractères au clavier (entrée standard) ;
l’écriture d’information a l’écran (sortie standard) ;
la lecture de caractères dans un fichier sur un disque dur (entrée
non standard) ;
l’écriture d’information dans un fichier sur un disque dur (sortie
non standard) ;

Vivient C. Kamla () Python AC : 2018-2019 39 / 58


Les opérations d’entrées /sorties standard Les opérations d’entrées standard

Les opérations d’entrées standard


Pour lire des caractères au clavier, le langage Python fournit les
fonctions :raw input () et input()
raw input ()
Cette fonction peut prendre une chaine en argument (un
message qui s’affiche à l’écran)
elle retourne la chaine saisie au clavier(la saisie se terminant
par la frappe de la touche ”Enter”)
La chaine saisie peut ensuite être convertir au type souhaité avec
les fonctions int() et float()
input ()
Cette fonction peut prendre une chaine en argument.
elle retourne le nombre entier et réel saisie au clavier.
NB : elle n’est pas utilisée saisir d’une chaine de caractères.
Vivient C. Kamla () Python AC : 2018-2019 40 / 58
Les opérations d’entrées /sorties standard Les opérations d’entrées standard

Les opérations d’entrées standard

raw input ()
nom = raw input (”Enter le nom”) ;
prenom = raw input (”Enter le prenom”) ;
age = float( raw input (”Enter l’ age ”)) ;
sexe = raw input () ;

input ()
age = input(”Entre l’age”) ;
taille = input() ;

Vivient C. Kamla () Python AC : 2018-2019 41 / 58


Les opérations d’entrées /sorties standard Les opérations de sorties standard

L’opération pour les sorties standard


Pour les affichages à l’écran, le langage Python offre une fonction spéciale :
print().
La fonction print ()
Permet d’afficher à l’écran n’importe quel nombre de valeurs fournies en
arguments ;
Par défaut, ces valeurs seront séparées les unes des autres par un espace et
le tout se terminera par un saut à la ligne.
On peut changer le séparateur par défaut par l’argument sep
On peut éviter le saut à la ligne grâce à l’argument end
Exemples d’utilisations deprint()
print(”Bonjour a tout le monde”)
print(”Bonjour”, ” à”, ”tout le monde”)
print(”Bonjour”, ” à”, ”tout le monde”, sep =”**”)
print(”Bonjour”, ” à”, ”tout le monde”, sep =”**”, end=”—”)
Vivient C. Kamla () Python AC : 2018-2019 42 / 58
Structuration et indentation

Plan

1 Présentation de Python

2 Les types et les opérations de bases

3 Les opérations d’entrées /sorties standard

4 Structuration et indentation

5 Les structurations algorithmiques fondamentales

6 References

Vivient C. Kamla () Python AC : 2018-2019 43 / 58


Structuration et indentation indentation

Structuration et indentation

La structuration d’un programme Python est définie par son indentation.


l’indentation consiste a espacer les lignes de code par rapport au bord
gauche de la fenêtre de saisie de texte ;
Le début d’un bloc est défini par un :, la première ligne pouvant être
considérée comme un en-tête (test, boucle, définition)
Le corps du bloc est alors indenté de manière plus importante (mais
régulière) que l’en-tête.
La fin du bloc est délimité par le retour à l’indentation de l’en-tête.
l’indentation est obligatoire en Python.

Vivient C. Kamla () Python AC : 2018-2019 44 / 58


Structuration et indentation Bloc d’instructions

Bloc d’instructions

Bloc d’instructions
Un bloc d’instruction est :
soit une seule instruction ;
soit plusieurs instructions au même niveau d’indentation.

Vivient C. Kamla () Python AC : 2018-2019 45 / 58


Structuration et indentation Bloc d’instructions

Structuration et indentation

Indentation dans Python

Figure: Indentation dans Python


Vivient C. Kamla () Python AC : 2018-2019 46 / 58
Les structurations algorithmiques fondamentales

Plan

1 Présentation de Python

2 Les types et les opérations de bases

3 Les opérations d’entrées /sorties standard

4 Structuration et indentation

5 Les structurations algorithmiques fondamentales

6 References

Vivient C. Kamla () Python AC : 2018-2019 47 / 58


Les structurations algorithmiques fondamentales

Structures algorithmiques
Les opérations élémentaires relatives a la résolution d’un problème
peuvent, en fonction de leur enchainement être organisées suivant
quatre familles de structures algorithmiques fondamentales :
Structures linéaires ;
Structures alternatives ;
Structures de choix ;
Structures itératives ou répétitives ;

Structures linéaires ;
Une structure linéaire se caractérise par une suite d’instructions
pouvant contenir des instructions élémentaires(simples) ou des
instructions composées(qui peuvent avoir une structure alternative,
de choix ou itérative) qui peuvent avoir une structure alternat

Vivient C. Kamla () Python AC : 2018-2019 48 / 58


Les structurations algorithmiques fondamentales

Structures algorithmiques : Structures


alternatives

Structures alternatives
Il est souvent utile d’effectuer un choix en fonction du résultat
d’un test ou d’une condition ;
Il est possible dans tous les langages de programmation
d’effectuer un groupe(ou bloc) d’instructions en fonction du
résultat d’un test ;
une instruction alternative(conditionnelle) prend généralement
trois formes.

Vivient C. Kamla () Python AC : 2018-2019 49 / 58


Les structurations algorithmiques fondamentales

Structures algorithmiques : Structures


alternatives
if condition :
bloc d’instructions 1
if condition :
bloc d’instructions 1
else :
bloc d’instructions 2
if condition1 :
bloc d’instructions 1
elif condition2 :
bloc d’instructions 2
else :
bloc d’instructions 3

Vivient C. Kamla () Python AC : 2018-2019 50 / 58


Les structurations algorithmiques fondamentales

Structures algorithmiques : Structures


alternatives

if 2 in {1,2,3 }&{2,4} :
print(”trouvé”)

if t< 10 :
température =”froid” elif t< 20 :
température =”tiede” else :
température =”chaud”.

Vivient C. Kamla () Python AC : 2018-2019 51 / 58


Les structurations algorithmiques fondamentales

Structures algorithmiques : Structures


itératives ou répétitives

Structures itératives ou répétitives


Une instruction itérative permet de répéter un certain nombre de fois
l’exécution d’une suite d’instructions sous une certaines condition. De
façon imagée, on appelle boucle cette méthode permettant de
répéter l’exécution d’un groupe d’instructions.

Les différentes structures itératives ou répétitives


L’instruction for ;
L’instruction while

Vivient C. Kamla () Python AC : 2018-2019 52 / 58


Les structurations algorithmiques fondamentales

Structures algorithmiques : Structures


itératives ou répétitives
L’instruction for
Une instruction for i in s : attribue successivement à i les valeurs des
éléments de s.
s peut être une liste ou une chaine de caractères.

Exemples
for i in liste :
print i
for i in range(n) :
print i
La fonction range(n) renvoie une liste composées des entiers de
0 à n-1.

Vivient C. Kamla () Python AC : 2018-2019 53 / 58


Les structurations algorithmiques fondamentales

Structures algorithmiques : Structures


itératives ou répétitives

L’instruction while : syntaxe


while (condition) :
bloc d’instruction
while (condition) :
bloc d’instruction 1
else :
bloc d’instructions 2

Vivient C. Kamla () Python AC : 2018-2019 54 / 58


Les structurations algorithmiques fondamentales

Structures algorithmiques : Structures


itératives ou répétitives
L’instruction while : Exemple 1
i=0 ;
while (i<10) :
print i ; i = i+1 ;

L’instruction while : Exemple 2


i=0 ;
while (i<10) :
print i ;
i = i+1 ;
else :
print i ;

Vivient C. Kamla () Python AC : 2018-2019 55 / 58


Les structurations algorithmiques fondamentales

What’s Still To Do ?

Open Questions
Answered Questions
Is every even number the sum of
How many primes are there ?
two primes ?

Vivient C. Kamla () Python AC : 2018-2019 56 / 58


Les structurations algorithmiques fondamentales

What’s Still To Do ?

Open Questions
Answered Questions
Is every even number the sum of
How many primes are there ?
two primes ?

Vivient C. Kamla () Python AC : 2018-2019 57 / 58


References

References (1)
[Boissier et al, 2004] Boissier, O., Gitton, S. et Glize, P..
Caractéristiques des systèmes et des applications. In Demazeau, Y., éditeur : Systèmes multi-agents
Editions TEC DOC., pages 25-54, 2004.

[Ferber, 1995] Ferber, J..


Les systémes multi-agents, vers une intelligence collective.
InterEditions,1995.

[Steels, 1991] Steels, L..


Towards a theory of emergence functionality.
In proceedings of the first international conference on simulation of adaptive behavior on from animals to animats.,1991.

[Russell, 1997] Russell, S.J..


Rationality and intelligence.
Artificial Intelligence., Vol. 94, p.57-77, 1997.

[Wooldridge et al., 1995] Wooldridge, M. et Jennings N. R.


Agent theories, architectures, and languages.
Dans Wooldridge, Jennings (ed), Intelligent Agents, Springer Verlag, p.1-22 , 1995.

[Shoham, 1993] Shoham,Y.


Agent-oriented programming.
Artificial Intelligence, Vol. 60, p.51-92, 1993.

[Demazeau and Costa, 1996]Demazeau, Y. et Costa, A. R.


Populations and organisations in open multi-agent systems.
In 1st Symposium on Parallel and Distributed AI, Hyderabad, India 1996.

[Dennett, 1987] Dennett, D.C.


The Intentional Stance.
The MIT Press 1987.
Vivient C. Kamla () Python AC : 2018-2019 58 / 58
References

References (2)

[Jamont, 2005] Jamont Jean-Paul


Diamond : Une approche pour la conception de systemes Multi-Agents embarqués.
Thèse d’informatique, préparée au Laboratoire de Conception et d’Intégration des Systèmes, dans le cadre de l’Ecole Doctorale
Mathématiques Sciences et Technologies de l’Information, Institut National Polytechnique de Grenoble 2005.

[Müller, 2000] Müller Jean-Pierre


Modélisation organisationnelle en systèmes multi-agents.
Universite de Neuchâtel : Institut d’Informatique. Cours, Septième École d’été de l’ARCo Bonas 10-21 juillet 2000.

[Rao et Georgeff, 1991] Rao,A.S., M.P. Georgeff


Modeling rational agents within a BDI-architecture.
In R. Fikes and E. Sandewall (eds), Dans actes de Knowledge Représentation and Reasoning’91, Morgan Kaufman p.473-484,
1991.
[Drogoul, 1993] Drogoul, A
De la simulation multi-agents à la résolution collective de problèmes, Une étude de l’émergence d’organisation dans les systèmes
multi-agents.
Thèse de doctorat de l’université de Paris VI 1993.

Vivient C. Kamla () Python AC : 2018-2019 59 / 58

Vous aimerez peut-être aussi