Vous êtes sur la page 1sur 128

Langage de programmation

structurée
1.Introduction

2 Mme AHOUDI 12/04/2021


Introduction
Python est un langage de programmation, dont la
première version est sortie en 1991.
Python est un langage puissant, à la fois facile à
apprendre et riche en possibilités
Il existe ce qu'on appelle des bibliothèques qui aident
le développeur à travailler sur des projets particuliers.
 Plusieurs bibliothèques peuvent ainsi être installées
pour, par exemple, développer des interfaces
graphiques en Python.

3 Mme AHOUDI 12/04/2021


Introduction
Concrètement, voilà ce qu'on peut faire avec Python :
de petits programmes très simples, appelés scripts, chargés d'une
mission très précise sur votre ordinateur ;
des programmes complets, comme des jeux, des suites bureautiques,
des logiciels multimédias, des clients de messagerie…
des projets très complexes, comme des progiciels (ensemble de
plusieurs logiciels pouvant fonctionner ensemble, principalement
utilisés dans le monde professionnel).
Quelques-unes des fonctionnalités offertes par Python et ses
bibliothèques :
créer des interfaces graphiques ;
faire circuler des informations au travers d'un réseau ;
dialoguer d'une façon avancée avec votre système d'exploitation ;

4 Mme AHOUDI 12/04/2021


Introduction
Python est un langage de programmation interprété,
c'est-à-dire que les instructions que vous lui envoyez
sont « transcrites » en langage machine au fur et à
mesure de leur lecture. D'autres langages (comme le
C / C++) sont appelés « langages compilés » car, avant
de pouvoir les exécuter, un logiciel spécialisé se charge
de transformer le code du programme en langage
machine.
On appelle cette étape la « compilation ». À chaque
modification du code, il faut rappeler une étape de
compilation.
5 Mme AHOUDI 12/04/2021
En résumé
Python est un langage de programmation interprété, à
ne pas confondre avec un langage compilé.
Il permet de créer toutes sortes de programmes,
comme des jeux, des logiciels, des progiciels, etc.
Il est possible d'associer des bibliothèques à Python
afin d'étendre ses possibilités.
Il est portable, c'est à dire qu'il peut fonctionner sous
différents systèmes d'exploitation (Windows, Linux,
Mac OS X,…).

6 Mme AHOUDI 12/04/2021


Les variables

7 Mme AHOUDI 12/04/2021


la variable
Le nom de la variable ne peut être composé que de lettres,
majuscules ou minuscules, de chiffres et du symbole
souligné « _ » (appelé under score en anglais).
Le nom de la variable ne peut pas commencer par un chiffre.
Le langage Python est sensible à la casse, ce qui signifie que
des lettres majuscules et minuscules ne constituent pas la
même variable (la variable AGE est différente de aGe, elle-
même différente de age).
Il existe différents types de variables, en fonction de
l'information que vous désirez conserver :int,float, chaîne de
caractères etc.

8 Mme AHOUDI 12/04/2021


AFFECTATION
En Python, pour donner une valeur à une variable, il
suffit d'écrire : nom_de_la_variable = valeur.
Exemple:

mon_age = 21
mon_age
21
mon_age_x2 = mon_age * 2
mon_age_x2
46

9 Mme AHOUDI 12/04/2021


Les fonctions d’entrée/sortie
 La fonction print permet d'afficher la valeur d'une ou plusieurs variables.

>>> a = 3

>>> print(a)

>>> a = a + 3

>>> b = a - 2

>>> print("a =", a, "et b =", b)

a = 6 et b = 4

10 Mme AHOUDI 12/04/2021


Les fonctions d’entrée/sortie
input()
 La fonction input est la fonction symétrique à print mais au lieu d’afficher, elle
permet de lire des variables.
 Exemple :

prenom = str(input("Quel est ton prenom ? "))

age = int(input("Quel est ton age ? "))

taille = float(input("Quelle est ta taille ? "))

print ("Bonjour",prenom,"!")

print ("Tu as",age,"ans et tu mesures",taille,"m.")

11 Mme AHOUDI 12/04/2021


Les operateurs arithmétiques
a+b Addition Somme de a et b.

a-b Soustraction Différence de a et b.

a*b Multiplication Produit de a et b.

a/b Division Quotient de a et b.

a//b Division entière

a%b Modulo Reste de a divisé par b.

a ** b Exponentielle Résultat de l'élévation de a à la puissance b.


Opérateurs de raccourcis
Ces opérateurs sont pratiques et ils facilitent la vie au

développeur. La règle est la suivante :


 variable = variable op expression

S’écrit de manière simplifiée :


 variable op= expression
Les commentaires
Il suffit pour cela de les faire précéder par « # ».

Chaque ligne de commentaire doit être précédée par « # »

Exemple :

# Ce programme calcule l’hypoténuse c d’un triangle rectangle.

# a et b sont les mesures des autres côtés du triangle.

a = 3.0

b = 4.0

c = (a**2 + b**2)**0.5 # On utilise ** au lieu de la racine carrée.


print("c =", c)
Commentaires
Pour commenter ou dé-commenter un code, il suffit

sélectionner la ou les lignes à commenter et utiliser le


raccourci clavier : CTRL + « / ».
Pour insérer des commentaires sur plusieurs lignes,

soit on place le « # » devant chaque ligne de


commentaire, soit on utilise 3 fois les guillemets « """
…. """ » :

15 NTIC 2020-2021
Exercices
 Ecrire un programme qui lit une valeur et qui nous calcule et
affiche l’inverse de cette valeur.

Le surveillant général d’un établissement scolaire souhaite qu’on lui


écrit un programme qui calcule, pour chaque élève, la moyenne des
notes des cinq matières. Ces matières sont avec leur coefficient :
MATIERE COEFFICIENT
Math 5
Physique 5
Français 4
Anglais 2
Histoire – Géographie 2
16 Mme AHOUDI 12/04/2021
12/04/2021 Mme AHOUDI
Les conditions
Syntaxe

if condition :
Bloc 1
Else :
Bloc 2
Operateurs de Comparaison

> Strictement supérieur


>= Supérieur ou égal
< Strictement inférieur
<= inférieur ou égal
== égal
!= différent
or ou
and et

19 NTIC 2020-2021
Exemple

a=2 a=2 a = "Bonjour"


b=2 b = 2.0 b = "Bonsoir"

print(a == b) print(a == b) print(a == b)

20 NTIC 2020-2021
If..elif..else
if condition1:
bloc1
elif condition2:
bloc 2
elif:
elif:
.
else:
bloc3
Exercices
1) Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite
si leur produit est négatif ou positif (on laisse de côté le cas où le produit est nul).

2) Ecrire un algorithme qui demande trois nombres à l’utilisateur et l’informe ensuite


s’ils sont rangés ou non dans l’ordre.

3) Étant donnés 2 nombres a et b, déterminer le 3ème x et écrire l’algorithme qui résout


l’équation du 2ème degré tel que : ax +b =0

4) Ecrire un algorithme qui saisit 2 nombres, l’un positif et l’autre négatif, et qui
affiche celui qui est positif.

5) Écrire l’algorithme qui lit 3 nombres et qui teste si l’un de ces derniers est égal à la
somme des deux autres. Si un tel nombre existe on l’affiche, sinon on affiche un
message
22 Mme AHOUDI 12/04/2021
12/04/2021 Mme AHOUDI
Les boucles
While..
Syntatxe

While condition :
instructions
#suite de votre code

Exemple
Exercices 1 :
1.Ecrire un algorithme qui demande à l’utilisateur d’ entrer un mot de passe. Si le mot
de passe égal à « admin » il affiche « connexion réussie » sinon il affiche « connexion
échouée »
2.Ecrire un algorithme qui demande à l’utilisateur un nombre compris entre 1 et 3
jusqu’à ce que la réponse convienne
3.Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que
la réponse convienne. En cas de réponse supérieure à 20, on fera apparaître un
message : « Plus petit ! », et inversement, « Plus grand ! » si le nombre est inférieur à
10.
4.Ecrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les dix
nombres suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme
affichera les nombres de 18 à 27.
5.Ecrire un algorithme qui demande successivement des nombres à l’utilisateur, et qui
lui dise ensuite quel était le plus grand parmi ces nombres et quel était sa position. La
saisie des nombres s’arrête lorsque l’utilisateur entre un zéro.
6.Ecrire un programme qui demande successivement des nombres à l’utilisateur, et qui
calcule
25 leurAHOUDI
Mme moyenne. La saisie des nombres s’arrête lorsque l’utilisateur entre un
12/04/2021
zéro
12/04/2021 Mme AHOUDI
For..
Syntaxe:

For item in liste


#Les Instructions
Exemple :
Execution
For…
Exemple 2:

Exemple 3(chaines de caractères)


Break Vs continue
break- quitte la boucle immédiatement et met fin
inconditionnellement au fonctionnement de la boucle;
le programme commence à exécuter l'instruction la
plus proche après le corps de la boucle;
continue- se comporte comme si le programme avait
soudainement atteint la fin du corps; le tour suivant est
commencé et l'expression de la condition est testée
immédiatement.
Break Vs continue
La fonction range()
Il est possible de créer une boucle facilement
avec range

En précisant les deux bornes inferieure et supérieure


Exercices 1 :
1. Ecrire un algorithme qui demande un nombre de départ, et qui ensuite
affiche les dix nombres suivants. Par exemple, si l'utilisateur entre le
nombre 17, le programme affichera les nombres de 18 à 27.
2. Donnez un algorithme pour afficher les dizaines entre 0 et 100. Le
résultat affiché sera : 10 20 30 40 50 60 70 80 90 100.
3. Donnez un algorithme pour afficher les dizaines entre 0 et 100 par ordre
décroissant. Le résultat affiché sera : 100 90 80 70 60 50 40 30 20 10 0
4. Ecrire un algorithme qui demande un nombre de départ, et qui calcule la
somme des entiers jusqu’à ce nombre. Par exemple, si l’on entre 5, le
programme doit calculer : 1 + 2 + 3 + 4 + 5 = 15
5. Ecrire un programme qui demande un nombre de départ, et qui calcule sa
factorielle. NB : la factorielle de 8, notée 8 ! Vaut 1 x 2 x 3 x 4 x 5 x 6
x7x8

31 Mme AHOUDI 12/04/2021


12/04/2021 Mme AHOUDI
Exercices 2:
 1) Ecrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table de
multiplication de ce nombre, présentée comme suit (cas où l'utilisateur entre le nombre 7) : 7
x1=7
7 x 2 = 14
7 x 3 = 21

7 x 10 = 70
 2) Ecrire un algorithme qui demande successivement 6 nombres à l’utilisateur, et qui lui dise
ensuite quel était le plus grand parmi ces 6 nombres :
Entrez le nombre numéro 1 : 12
Entrez le nombre numéro 2 : 14

Entrez le nombre numéro 6 : 5
Le plus grand de ces nombres est : 14
 3) Modifiez ensuite l’algorithme pour que le programme affiche de surcroît en quelle position
avait été saisie ce nombre :
C’était le nombre numéro 2

32 Mme AHOUDI 12/04/2021


12/04/2021 Mme AHOUDI
Exercices 3:
 Ecrire un algorithme qui :
- lit d’abord une valeur
- ensuite il va lire successivement 10 nombres.
 enfin il va déterminer combien de fois la première valeur a été saisie (sans
compter la première saisie)
 Programme qui demande à l’utilisateur un nombre et qui affiche un pyramide
des étoiles
 Exemple:

33 Mme AHOUDI 12/04/2021


12/04/2021 Mme AHOUDI
Les listes
Les listes
C’est un nouveau type de variable qui peut contenir
des entiers, des flottants, des chaînes de caractères
voire des listes. Il est naturellement intégré dans
python.
Une liste est une collection ordonnée d’objets python.
De même que pour les chaînes de caractères, la
fonction print() permet d’afficher la liste. Voici un
exemple de liste :
Exemple : Execution
Les listes
La fonction utilisation
Len(list) La longueur de la liste
list.append(x) Ajouter x à la fin de la liste
list.insert(i, x) Inserer l’element x dans la position i
list.remove(x) Supprimer le premier element x de la
liste
list.pop([i]) Supprimer l’element d’indice i
list.clear() Supprimer tous les elements de la liste
list.count(x) Retourne le nombre d’occurrence de x
dans list
list.sort(*, key=None, reverse=False) Trier les element de la liste

list.reverse() Inverser la liste sur place


list.copy() Retourne un copie de la liste
Del list [:i] Supprimer des i premier elements de la
liste
LES TABLEAUX
Exemple:
EXERCICES
4. Soit T un tableau de vingt éléments de types entiers. Ecrire le programme qui permet
de calculer la somme des éléments de ce tableau.

5. Soit T un tableau de N entiers. Ecrire l’algorithme qui détermine le plus grand


élément de ce tableau.

6. Ecrire un programme qui permet de lire 100 notes et de déterminer le nombre de


celles qui sont supérieures à la moyenne.

7. Soit T un tableau de N entiers. Ecrire l’algorithme qui détermine simultanément la


position du plus grand élément et la position du plus petit élément du tableau.

8. Soit T un tableau de N réels. Ecrire le programme qui permet de calculer le nombre


des occurrences d’un nombre X (c'est-à-dire combien de fois ce nombre X figure
dans le tableau T).
38 Mme AHOUDI 12/04/2021
12/04/2021 Mme AHOUDI
EXERCICES
9. On dispose des notes de 25 élèves ; chaque élève peut avoir une ou plusieurs
notes mais toujours au moins une. Ecrire un programme permettant d’obtenir la
moyenne de chaque élève lorsqu’on lui fournit les notes. On veut que les
données et les résultats se présentent ainsi :
Notes de l’élève numéro 1
12
12
-1
Notes de l’élève numéro 2
……
Notes de l’élève numéro 25
15
-1
Moyenne Elève numéro 1 : 11
……
Moyenne Elève numéro 25 : 15
39 Mme AHOUDI Moyenne de la classe : 12.3 12/04/2021
12/04/2021 Mme AHOUDI
EXERCICES
10. Créez un programme qui crée et initialise un tableau,
puis insère un élément à la position spécifiée dans ce
tableau (de 0 à N-1).
 Pour insérer un nouvel élément dans le tableau, déplacez les éléments de la
position d'insertion donnée vers une position vers la droite.
11. Créez un programme qui crée et initialise un tableau,
puis supprimez un élément de ce tableau à la position
spécifiée (de 0 à N-1).
 Pour supprimer un élément du tableau, déplacez les éléments juste après la
position donnée vers une position à gauche et réduisez la taille du tableau.
EXERCICES
12. Créez un programme qui crée et initialise un tableau, puis
trouve la fréquence de chaque élément de ce tableau.
13. Créez un programme qui crée et initialise un tableau, puis
affichez tous les éléments uniques de ce tableau
Idée: utiliser un tableau de fréquences

14. Créez un programme qui crée et initialise un tableau, puis


comptez les éléments en double dans ce tableau.
15. Créez un programme qui crée et initialise un tableau, puis
supprimez les éléments en double dans ce tableau.
16. Créez un programme qui crée et initialise un tableau, puis
inversez ce tableau sans utiliser un tableau supplémentaire.
TABLEAUX DEUX DIMENSIONS
A = [[0 for i in range(N)] for j in range(M)]
for i in range(M):
   for j in range(N):
       A[i][j] = int(input("Saisir l'élement A[{0}][{1}]
Exercices
3. Soit T un tableau à deux dimensions de 3 lignes et 4 colonnes.

a. Ecrire un algorithme qui permet de calculer la somme de tous les éléments du


tableau.

b. Ecrire l’algorithme qui permet de compter le nombre des éléments strictement


positifs.

c. Ecrire l’algorithme permettant d’obtenir la somme des éléments positifs (spos)


et la somme des éléments négatifs (sneg) de ce tableau.

d. Ecrire l’algorithme qui détermine la plus grande valeur des éléments du tableau.

e. Ecrire l’algorithme qui détermine simultanément l’élément le plus grand du


tableau ainsi que sa position.
LES ALGORITHMES DE TRI

44 Mme AHOUDI 12/04/2021


12/04/2021 Mme AHOUDI
LES ALGORITHMES DE TRI

Tri des données


Réorganiser une suite d’enregistrements, de
de telle
telle sorte
sorte que
que les
les
clés soient ordonnées

25 34 10 5 12 23 16

5 10 12 16 23 25 34
45 Mme AHOUDI 12/04/2021
Tri par bulles
Principe:
 Ce tri permet de faire remonter petit à petit un élément trop
grand vers la fin du tableau en comparant les éléments deux
à deux.
 Si un élément d’indice i est inferieur à un élément d’indice
i-1 on les échange et on continue avec le suivant.
Lorsqu’on atteint le début du tableau on repart du fin. On
s’arrête lorsque tous les éléments du tableau sont bien
placés c'est-à-dire qu’on aura aucun changement
d’éléments à effectuer.

46 Mme AHOUDI 12/04/2021


Tri par bulles
25 34 10 5 12 23 16

Etape 1 5 25 34 10 12 16 23

Etape 2 5 10 25 34 12 16 23

Etape 3 5 10 12 25 34 16 23

Etpe 4 5 10 12 16 25 34 23

Etape 5 5 10 12 16 23 25 34
47 Mme AHOUDI 12/04/2021
TRI PAR BULLES
Tri par Sélection
Principe:
 Soit T un tableau de N éléments. On cherche le plus petit
élément du tableau et on le place à la première position. Après,
on cherche le plus petit dans les (N-1) qui reste et on le place
en deuxième position et ainsi de suite.

Chercher le plus petit élément: t[m]


Le placer au début: permuter t[0] et t[m]

25 34 10 5 12 23 16

5 34 10 25 12 23 16
49 Mme AHOUDI 12/04/2021
Tri par Sélection

Exemple

12
12
22 15 58 12 17 14
12 15 58 22 17 14
14

12 14 58 22 17 15
15

12 14 15 22 17
17 58
12 14 15 17 22
22 58
12 14 15 17 22 58

50 Mme AHOUDI 12/04/2021


Tri par sélection
Tri par insertion/permutation
 Principe : chaque fois que le joueur prend une nouvelle carte, il
l’introduit dans sa main de telle sorte qu’elle reste ordonnée. Le tri par
insertion est basé sur cette idée d’insertion dans une liste ordonnée.

Partie triée Partie non triée

7
1299 7
12
10
10

52 Mme AHOUDI 12/04/2021


Tri par insertion
 Principe : chaque fois que le joueur prend une nouvelle carte, il
l’introduit dans sa main de telle sorte qu’elle reste ordonnée. Le tri par
insertion est bas´e sur cette idée d’insertion dans une liste ordonnée.

Partie triée Partie non triée

12 77
1299
10
10

53 Mme AHOUDI 12/04/2021


Tri par insertion
 Principe : chaque fois que le joueur prend une nouvelle carte, il
l’introduit dans sa main de telle sorte qu’elle reste ordonnée. Le tri par
insertion est bas´e sur cette idée d’insertion dans une liste ordonnée.

Partie triée Partie non triée


10
10

12 77
1299 88

54 Mme AHOUDI 12/04/2021


Tri par insertion
 Principe : chaque fois que le joueur prend une nouvelle carte, il
l’introduit dans sa main de telle sorte qu’elle reste ordonnée. Le tri par
insertion est basé sur cette idée d’insertion dans une liste ordonnée.

Partie triée Partie non triée


10
10

12 77
12 99 88

55 Mme AHOUDI 12/04/2021


Tri par insertion
 Principe : chaque fois que le joueur prend une nouvelle carte, il
l’introduit dans sa main de telle sorte qu’elle reste ordonnée. Le tri par
insertion est bas´e sur cette idée d’insertion dans une liste ordonnée.

Partie triée Partie non triée


10
10

12 77
12 99 88

56 Mme AHOUDI 12/04/2021


Tri par insertion
 Principe : chaque fois que le joueur prend une nouvelle carte, il l’introduit
dans sa main de telle sorte qu’elle reste ordonnée. Le tri par insertion est
bas´e sur cette idée d’insertion dans une liste ordonnée.

Partie triée Partie non triée

12 77
1210
10 99 88

57 Mme AHOUDI 12/04/2021


Tri par insertion
 Principe : chaque fois que le joueur prend une nouvelle carte, il l’introduit
dans sa main de telle sorte qu’elle reste ordonnée. Le tri par insertion est
bas´e sur cette idée d’insertion dans une liste ordonnée.

Partie triée Partie non triée

11 12 13 18 20 16 14 17 15 19
i

58 Mme AHOUDI 12/04/2021


Tri par insertion
 Principe : chaque fois que le joueur prend une nouvelle carte, il l’introduit
dans sa main de telle sorte qu’elle reste ordonnée. Le tri par insertion est
bas´e sur cette idée d’insertion dans une liste ordonnée.

Partie triée Partie non triée

11 12 13 18 20 16 14 17 15 19
i

59 Mme AHOUDI 12/04/2021


Tri par insertion
 Principe : chaque fois que le joueur prend une nouvelle carte, il l’introduit
dans sa main de telle sorte qu’elle reste ordonnée. Le tri par insertion est
bas´e sur cette idée d’insertion dans une liste ordonnée.

Partie triée 16 Partie non triée

11 12 13 18 20 14 17 15 19
i

60 Mme AHOUDI 12/04/2021


Tri par insertion
 Principe : chaque fois que le joueur prend une nouvelle carte, il l’introduit
dans sa main de telle sorte qu’elle reste ordonnée. Le tri par insertion est
bas´e sur cette idée d’insertion dans une liste ordonnée.

Partie triée 16 Partie non triée

11 12 13 18 20 14 17 15 19
i

61 Mme AHOUDI
12/04/2021
Tri par insertion
 Principe : chaque fois que le joueur prend une nouvelle carte, il l’introduit
dans sa main de telle sorte qu’elle reste ordonnée. Le tri par insertion est
bas´e sur cette idée d’insertion dans une liste ordonnée.

Partie triée 16 Partie non triée

11 12 13 18 20 14 17 15 19
i

62 Mme AHOUDI
12/04/2021
Tri par insertion
 Principe : chaque fois que le joueur prend une nouvelle carte, il l’introduit
dans sa main de telle sorte qu’elle reste ordonnée. Le tri par insertion est
bas´e sur cette idée d’insertion dans une liste ordonnée.

Partie triée Partie non triée

11 12 13
13 16 18 20 14 17 15 19
i

63 Mme AHOUDI
12/04/2021
Tri par insertion
 Principe : chaque fois que le joueur prend une nouvelle carte, il l’introduit
dans sa main de telle sorte qu’elle reste ordonnée. Le tri par insertion est
bas´e sur cette idée d’insertion dans une liste ordonnée.

Partie triée Partie non triée

11 12 13 16 18 20 14 17 15 19
i

64 Mme AHOUDI
12/04/2021
Tri par insertion
 Principe : chaque fois que le joueur prend une nouvelle carte, il l’introduit
dans sa main de telle sorte qu’elle reste ordonnée. Le tri par insertion est
bas´e sur cette idée d’insertion dans une liste ordonnée.

Partie triée Partie non triée

11 12 13 16 18 20 14 17 15 19
i

65 Mme AHOUDI
12/04/2021
Tri par insertion
Partie triée Partie non triée

11 12 13 16 18 20 14 17 15 19

11 12 13 14 16 18 20 17 15 19

11 12 13 14 16 17 18 20 15 19

11 12 13 14 15 16 17 18 20 19

11 12 13 14 15 16 17 18 19 20

66 Mme AHOUDI
12/04/2021
TRI PAR INSERTION
Tri par comptage
 Principe :

Consiste pour chaque élément du tableau à compter


combien d'éléments sont plus petits que lui, grâce à ce
chiffre on connaît sa position dans le tableau résultat

68 Mme AHOUDI 12/04/2021


Tri par comptage
T2 0 0 0 0 0 0 0 0 0 0 0 0

T1 3 10 1 9 2 13 9 7 10 8 13 0

3 8 1 6 2 10 6 4 8 5 10 0

7 9 11

T2 0 1 2 3 7 8 9 9 10 10 13 13

T1 0 1 2 3 7 8 9 9 10 10 13 13
69 Mme AHOUDI 12/04/2021
Tri par comptage
Tri rapide
 Principe :
consiste à placer le premier élément d'un tableau
d'éléments à trier (appelé pivot) à sa place définitive en
permutant tous les éléments de telle sorte que tous ceux qui
lui sont inférieurs soient à sa gauche et que tous ceux qui
lui sont supérieurs soient à sa droite. Cette opération
s'appelle partitionnement. Pour chacun des sous-tableaux,
on définit un nouveau pivot et on répète l'opération de
partitionnement. Ce processus est répété récursivement,
jusqu'à ce que l'ensemble des éléments soient triés.

71 Mme AHOUDI 12/04/2021


Tri rapide
3 10 17 15 23 13 9 7 16 8 13 12 11
 Principe :

3 10 17 15 23 13 9 7 16 8 13 12 11
permuter

3 8 17 15 23 13 9 7 16 10 13 12 11

3 8 7 15 23 13 9 17 16 10 13 12 11

3 8 7 9 23 13 15 17 16 10 13 12 11

72 Mme AHOUDI 12/04/2021


Tri rapide
3 8 7 9 23 13 15 17 16 10 13 12 11
Stop

3 8 7 9 23 13 15 17 16 10 13 12 11

3 7 8 9 11 13 15 17 16 10 13 12 23

3 7 8 9 11 13 15 12 16 10 13 17 23

3 7 8 9 11 13 15 12 13 10 16 17 23
73 Mme AHOUDI 12/04/2021
Tri rapide

3 7 8 9 11 13 15 12 13 10 16 17 23

3 7 8 9 11 13 10 12 13 15 16 17 23

3 7 8 9 11 13 10 12 13 15 16 17 23

3 7 8 9 10 13 11 12 13 15 16 17 23

74 Mme AHOUDI 12/04/2021


Tri rapide

3 7 8 9 10 11 13 12 13 15 16 17 23

3 7 8 9 10 11 12 13 13 15 16 17 23

3 7 8 9 10 11 12 13 13 15 16 17 23

75 Mme AHOUDI 12/04/2021


Tri rapide
Les fonctions et les procédures
Syntaxe
La syntaxe Python pour la définition d’une fonction
est la suivante :
def nom_fonction(liste de paramètres): bloc
d'instructions
Exemple: Execution
Syntaxe
1. Définir la fonction « Somme » qu’on lui passe deux valeurs de type entier et
qui renvoie comme valeur la somme des valeurs reçues.

2. Définir la fonction « Absolue » qui renvoie la valeur absolue d’une valeur


qu’on lui passe comme paramètre.

3. Définir la fonction « Inverse » qui renvoie l’inverse d’une valeur qu’on lui
passe comme paramètre.

4. Définir la fonction « Max » qui renvoie le maximum de deux valeurs.

5. Ecrivez un programme qui lit trois scores et qui utilise la fonction définie
dans l’exercice précédent pour déterminer le meilleur score et l’afficher
après.
Les procédures
Sous programme mais sans aucun retour!!
Exemple Execution
Exercices
 1. Ecrire une procédure qui reçoit la longueur et la largeur d’une surface
et qui affiche la valeur de la surface. Donnez à cette procédure le nom «
Surface ».
 2. Ecrire une procédure qui permet d’échanger les valeurs de deux
variables. Appelez cette procédure « Echanger ».
 3. On dispose d’une phrase dont les mots sont séparer par des point
virgules. Ecrivez une procédure qui permet de remplacer les points
virgules par des espaces. On suppose qu’on dispose des fonctions
suivantes :
Longueur : permet de calculer la longueur d’une chaîne de
caractères.
Utilisation : Longueur (chaîne)
 Extraire : permet d’extraire une partie (ou la totalité) d’une
chaîne.
Utilisation : Extraire (paramètre , position_debut, longueur)
 Paramètre : chaîne de laquelle on fait l’extraction
La procédure Echanger en python???
Variables locales Vs globales
Exemple Execution
Variables locales Vs globales
paramètre positionnel Vs mots-clé
Prenons cet exemple
def soust(a,b) :
print(a,"-",b,"=",a-b)

x=10
y=30
soust(x,y)
soust(y,x)
soust(b=x,a=y)
Vous pouvez mélanger les deux modes si vous le souhaitez - il n'y
a qu'une seule règle incassable: vous devez mettre les
arguments positionnels avant les arguments mot-clé.
exercices
Quelle est la sortie de l'extrait de code suivant?

Quelle est la sortie de l'extrait de code suivant?


exercices
Quelle est la sortie de l'extrait de code suivant?

Quelle est la sortie de l'extrait de code suivant?


Exercices
Définitions :
On appelle nombre premier tout entier naturel supérieur à 1 qui possède
exactement deux diviseurs, lui-même et l’unité ;
On appelle diviseur propre de n, un diviseur quelconque de n, n exclu ;
 un entier naturel est dit parfait s’il est égal à la somme de tous ses diviseurs
propres ;
les nombres a tels que : (a + n + n 2 ) est premier pour tout n
tel que 0 <=n < (a − 1), sont appelés nombres chanceux.

Écrire un module (parfait_chanceux_m.py) définissant quatre fonctions :


somDiv, estParfait, estPremier, estChanceux et un auto-test :
la fonction somDiv retourne la somme des diviseurs propres de son argument ;
 les trois autres fonctions vérifient la propriété donnée par leur définition et
retourne un booléen. Plus précisément, si par exemple la fonction estPremier
vérifie que son argument est premier, elle retourne True, sinon elle retourne False.
Liste comme paramètre

12
Fonction retourne une une liste
Les fonctions et les chaines de
caracteres
Print()
La fonction print() provoque par défaut un retour à la ligne
après affichage des arguments, mais on peut modifier cela
grâce à l’option « end ».

Exemple 2:

La fonction print() peut n’avoir aucun argument, càd


que l’instruction print() est correcte syntaxiquement et
elle provoque naturellement un saut de ligne.
Operations

Opération Operateur Exemple


concatenation + Ab+Ba=AbBa
Duplication * Ab*3=AbAbAb
Les fonctions
Les fonctions
Exercice1
Ecrire une fonction longueur_chaine(ch)qui recoit en
argument une chaine de caractères ch, et qui retourne
sa taille.?
Ecrire un programme qui permet de : 
Saisir au clavier une chaine de caractères
Afficher la taille de cette chaine de caractères de deux
façons :
 avec la fonction longueur_chaine(ch) 
 avec la fonction prédéfinie len()
Exercice2
Ecrire une fonction nbr_occurence(ch,e) qui recoit en
arguments une chaine de caractères ch et un caractère e, la
fonction retourne le nombre d'aoccurences du
caractère e dans la chaine ch.
Ecrire une fonction pr_occurence(ch,e) qui recoit en
argument une chaine de caractères ch et un ccaractère e, la
fonction retourne l'indice positif de la première occurrence
du caractère e s'il existe dans la chaine ch sinon elle retourne
-1
Ecrire un programme qui permet de saisir une chaine de
caractères et un caractère, puis de tester les fonctions
définies dans les questions 1 et 2
Exercice2
Ecrire une fonction cmp_chaine(ch1,ch2) qui reçoit en argument deux
chaine de caractères ch1 et ch2, la fonction compare ch1 et ch2et
retourne :
 1 si ch1 > ch2
0 si ch1 = ch2
-1 si ch1<ch2
Ecrire une fonction saisir_liste_chaine(n) qui recoit en argument un
entier n et qui retourne une liste de n chaines de caractères
Ecrire une fonction trier_liste_chaine(L,n) qui recoit en argument une
liste L de n chaines de caractères alphabétiques, la fonction trie et
retourne la liste Ltriée suivant l'order alphabétique.
Ecrire un programme qui permet de saisir un entier n et une liste
de nchaines de caractères, puis de tester les fonctions définie dans les
questions 1, 2 et 3.
La recursivité
Calculer le fatctoriel

Suite de fibonacci!!!!
Les tuples et les dictionnaires
Un tuple?
Un tuple est une liste non modifiables
Tupleles parenthèses t1=(1,2,3,4)
Listes les crochets l1=[1,2, 3,4]

T1.append(9) génère une erreur car c’est un tuple


Un tuple?
Tuple vide:
Exemple 1: Exemple2
Exercices
En utilisant un tuple, réalisez une
fonction nom_mois qui à un entier compris entre 1 et
12 associe le nom du mois correspondant.
Réalisez une fonction nommée indice qui renvoie
l’indice de la première occurrence de son premier
paramètre dans le tuple passé en second paramètre, si
elle existe. Par exemple 
Un dictionnaire
un dictionnaire n'est pas une liste - une liste contient
un ensemble de valeurs numérotées, tandis qu'un
dictionnaire contient des paires de valeurs ;
• la len()fonction fonctionne également pour les
dictionnaires - elle renvoie le nombre d'éléments de
valeur-clé dans le dictionnaire;
• un dictionnaire est un outil à sens unique - si vous
avez un dictionnaire anglais-français, vous pouvez
rechercher des équivalents français de termes
anglais, mais pas l'inverse
Un dictionnaire
Cela signifie qu'un dictionnaire est un ensemble de
paires clé-valeur . Remarque:
• chaque clé doit être unique - il n'est pas possible
d'avoir plus d'une clé de la même valeur;
• une clé peut être des données de tout type (sauf
liste): elle peut être un nombre (entier ou flottant),
voire une chaîne;
Exemples
Comment parcourir un dictionnaireboucle
Je dois parcourir les clé

La fonction sorted:


Comment parcourir un dictionnaireboucle
Items: la methode renvoie des tuples où chaque tuple
est une paire clé-valeur .

values(): fonctionne de manière similaire à keys(),


mais renvoie des valeurs .
modifier et ajouter des valeurs
Modifier

Ajouter

Ajouter (la fonction update)


modifier et ajouter des valeurs
Retrait d’une clé

La suppression d'une clé non existante provoque une erreur


 popitem(): supprimer le dernier element
Exercices
Soit la liste: L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
A partir de L:
Ajouter la valeur 1 à chacun de ses éléments.
Ajouter la valeur 11 à la fin de la liste.
Ajouter les valeurs 12 et 13 à la fin de la liste.
Afficher le premier élément, les deux premiers éléments, le dernier
élément, les deux derniers éléments.
Construire la liste "paires" qui contient les nombres paires de L et la liste
"impaire" qui contient les nombres "impaires" de L.
Ajouter la valeur 3.5 entre 3 et 4.
Supprimer la valeur 3.5.
Inverser l'ordre des éléments de L.
Demander à l'utilisateur de fournir un nombre au hasard et dire si ce
nombre est présent dans L.
Exercices
Soit le dictionnaire :
d = {'nom': 'Dupuis', 'prenom': 'Jacque', 'age': 30}
Corriger l'erreur dans le prénom, la bonne valeur est
'Jacques'.
Afficher la liste des clés du dictionnaire.
Afficher la liste des valeurs du dictionnaire.
Afficher la liste des paires clé/valeur du dictionnaire.
Ecrire la phrase "Jacques Dupuis a 30 ans".
Exercices
Demander à l'utilisateur de fournir un caractère au
hasard et dire s'il s'agit :
D'une lettre minuscule,
D'une lettre majuscule,
D'un chiffre,
D'autre chose.
Les fichiers
Editer un fichier
Pour éditer un fichier en python on utilise la
fonction open .
Cette fonction prend en premier paramètre le chemin
du fichier (relatif ou absolu) et en second paramètre le
type d'ouverture
Chemin relatif / chemin absolu
Un chemin relatif en informatique est un chemin qui
prend en compte l'emplacement de lecture.
Un chemin absolu est un chemin complet qui peut
être lu quelque soit l'emplacement de lecture.
La fonction open
Voici la syntaxe pour lire un fichier
 fichier = open("data.txt", "r")
 print fichier
On remarque que le deuxième paramètre est renseigné
par un r , ce paramètre indique une ouverture de
fichier
Les types d'ouverture
r, pour une ouverture en lecture (READ).
w, pour une ouverture en écriture (WRITE), à chaque
ouverture le contenu du fichier est écrasé. Si le fichier
n'existe pas python le crée.
a, pour une ouverture en mode ajout à la fin du fichier
(APPEND). Si le fichier n'existe pas python le crée.
 b, pour une ouverture en mode binaire.
 t, pour une ouverture en mode texte.
 x, crée un nouveau fichier et l'ouvre pour écriture
Ecriture et fermeture
Ecriture et fermeture
A noter que pour le monde d'ouverture a , si vous
voulez écrire à la ligne, vous pouvez utiliser le saut de
ligne \n :
Le mot clé with
Il existe une autre syntaxe plus courte qui permet de
s'emanciper du problème de fermeture du fichier: le
mot clé with .
Voici la syntaxe:
Exercice
Soit un fichier typé intitulé concours.txt qui comporte les
enregistrements relatifs aux candidats d’un concours.
Chaque enregistrement est composé de : NCIN, NOM,
PRENOM, AGE, DECISION : (type contenant les
identificateurs suivants : admis, refusé, ajourné), et
séparé par point virgule (;).
Travail demandé :
Définir la fonction saisir() qui permet de remplir les données
relatives aux candidats dans le fichier concours.txt
Définir la fonction admis() qui permet créer le fichier
admis.txt comportant les données relatives aux candidat
admis
Exercice
Afin de sélectionner en priorité les candidats admis et âgés moins de
30 ans, créer la fonction attente() qui produira à partir du
fichier admis.txt, un nouveau fichier intitulé attente.txt comportant
les données relatives aux candidats admis et âgés plus que 30 ans.
Une ligne du fichier attente.txt comprend le NCIN,
le NOM et PRENOM d’un candidat séparés par point virgule (;).
Définir la fonction statistiques(dec) qui permet de retourner le
pourcentage des candidats pour la décision dec (admis, refusé et
ajourné). Exemple :Le pourcentage des candidats admis = (Nombre
des candidats admis / Nombre des candidats) *100
Définir la fonction supprimer() qui supprimera du fichier admis.txt
les candidat âgés plus que 30
N.B : On suppose que les fichiers seront mis à la racine du lecteur C.
Les algorithmes de recherches
Les listes non triées
Recherche fastidieuse

Recherche séquentielle
Les listes triées
séquentielle
Les listes triées

Vous aimerez peut-être aussi