Vous êtes sur la page 1sur 4

République Islamique de Mauritanie Ecole Supérieure Polytechnique

Institut Supérieur des Métiers


de la Statistique (ISMS)

TD Python
Exercice 1
a) Dessiner l’´état des cases mémoires pour les trois variables après l’exécution de chaque ligne.
a. A = 4 e. D= [7, 3] *5
b. B = 2*5 f. E= ‘’A‘’+’’X’’
c. B+= A g. F=D[1:3]
d. C= A + A **2 h. G=3 in D
b) Écrivez un programme qui affiche une table de conversion de sommes d’argent exprimées en euros
vers MRU. La progression des sommes de la table sera « géométrique », comme dans l’exemple ci-
dessous : 1 euro(s) = 40.00 MRU ; 2 euro(s) = 80 MRU ; 4 euro(s) = 160 MRU, etc. (S’arrêter à 16384
euros.)
c) Écrire un programme qui permet de calculer la somme S suivante (k = 100) :
S= 1 + 32 + 54 + 76 + … + Nk

Exercice 2
Ecrire une fonction qui prend en paramètre un nombre d’heures et le prix de l’heure et renvoi le montant des
heures selon le barème suivant :
Les 39 premières heures sans supplément (montant des heures = prix de l’heure* nombre d’heure),
 De la 40ième à la 44ième heure sont majorées de 50%,
 De la 45ième à la 49ième heure sont majorées de 75%,
 De la 50ième heure ou plus, sont majorées de 100%.

Exercice 3
a) Ecrire un programme python qui permet de saisir une suite de nombre (compris entre 100 et -100)
tant que l’utilisateur saisit un nombre diffèrent de 0.
1. Le programme doit afficher le nombre d’entier négatif
2. Le nombre d’entier positif
3. La somme et la moyenne des nombres saisis
4. Une liste LP qui contient tous les nombres positifs
5. Une liste LN qui contient tous les nombres négatifs
b) Soient les listes suivantes :
t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
t2 = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre',
'Décembre']
Écrivez un petit programme qui crée une nouvelle liste t3. Celle-ci devra contenir tous les éléments
des deux listes en les alternant, de telle manière que chaque nom de mois soit suivi du nombre de jours
correspondant : ['Janvier',31,'Février',28,'Mars',31, etc...].
c) Qu’affiche le programme ci-dessous ?
L= [ i for i in range ( 20) ]
print (L)
print ( [ i for i in range (20) if i%2==1])
print ( [ i * i for i in range ( 1 , 6 ) ] )
print ({ i+j for i in range (1 ,6) for j in range (1 ,6)})
d) Définir la liste L=[0, 2, 4,….2*n], n donné par l’utilisateur avec deux méthodes différentes.
e) Utilisez une liste en compréhension pour obtenir la liste ['ad', 'ae', 'bd', 'be', 'cd', 'ce'] à partir des
chaînes "abc" et "de".

Elément du module : Algo & Prog 2 1/4 Année : 2021 - 2022


Exercice 4
Les données suivantes (X) représentent les longueurs en centimètres des pantalons vendus dans un magasin en
une semaine et N les effectifs correspondants :

X 74 76 78 80 82 84 86
N 10 15 21 20 17 13 4
a) Créer une liste « X » contenant les valeurs du tableau de résultat.
b) Créer une liste « N » contenant les valeurs du tableau de résultat.
c) Ecrire un programme permettant de calculer la liste de fréquences ainsi que le nombre de longueurs.
d) Définir une fonction multiplier(X, N) qui multiplie chaque longueur de la liste X par son effectif.
e) Définir une fonction Total(X, N) qui renvoie la liste de toutes les longueurs.
Prendre par exemple
X 77 79 85
N 3 2 3
Le résultat de L=Total(X, N) devrait être :

L=[77, 77, 77, 79, 79, 85, 85, 85]

1) Le tri par comptage consiste pour chaque élément d’une liste à trier à compter combien d’éléments
sont strictement plus petits que lui. Grâce à ce chiffre, on peut connaître sa position dans la liste triée.
Nous supposerons que la liste ne contient qu’une seule occurrence de chaque élément.
Exemple. Soit le la liste d’entiers suivante
L= 7 -1 0 5 2 -3 1
La liste de comptage LComptage est la suivante, où pour chaque élément on compte combien
d’éléments sont strictement plus petits.
LComptage = 6 1 2 5 4 0 3
La liste L triée peut-être calculé à partir de ces chiffres, où les éléments sont rangés par ordre croissant
de compte (du plus petit à gauche au plus grand à droite)

Exercice 5
a) Affichez chaque caractère d’une chaîne en utilisant une boucle For.
b) Ecrire une fonction nbMots qui prend une chaîne de caractères et renvoie le nombre de mots dans la
phrase. Par exemple, nbMots(’Bonjour, comment ça va?’) renverra 4. Les mots sont simplement les
blocs de caractères délimités par les espaces.
c) Écrire une fonction nombreOcurrences(caractere, mot) qui prend en argument un caractère x et une
chaîne de caractère mot et qui renvoie le nombre de fois où le caractère x est présent dans mot. Par
exemple, si mot est le mot «java», nombreOcurrences(’a’, mot) vaut 2.
d) Définissez une fonction inverse(ch) qui permette d’inverser les l’ordre des caractères d’une chaîne
quelconque.
Exercice 6
On considère le dictionnaire suivant dont les clés sont les noms des élèves et les valeurs des clés sont les
moyennes générales obtenues en passant l’examen final:
etudiants = {"etudiant_1" : 13 , "etudiant_2" : 17 , "etudiant_3" : 9 , "etudiant_4" : 15 , "etudiant_5" : 8 ,
"etudiant_6" : 14 , "etudiant_7" : 16 , "etudiant_8" : 12 , "etudiant_9" : 13 , "etudiant_10" : 15 }
En supposant que le dictionnaire étudiant existe : écrire un programme qui permet de partagé ce dictionnaire
en trois sous dictionnaires :
a) EtudiantAdmis dont les clés sont les étudiants_admis et les valeurs des clés sont les moyennes
obtenues (moyenne supérieurs ou égales à 10 ).
b) EtudiantSessionnaire dont les clés sont les étudiants_session et les valeurs des clés sont les
moyennes obtenues entre 8 et 10 (10 non inclue)
c) EtudiantAjoutnée dont les clés sont les étudiants_ajournées et les valeurs des clés sont les moyennes
obtenues (moyenne inférieur à 8).

Elément du module : Algo & Prog 2 2/4 Année : 2021 - 2022


Exercice 7
Que se passe-t-il lors de l’exécution des codes suivants ?

Exercice 8
a) Écrire une fonction P telle que P(a) renvoie la valeur du polynôme X3 − 7.2X + 1.4 en a.
b) Écrire une fonction sans variable tirageDe() qui simule un tirage de dé. Faire quelques appels de cette
fonction.
c) Écrire une fonction qui fait des tirages successifs jusqu’à tirer 3 fois 1 consécutivement et renvoie le
nombre de tirages qui ont été nécessaires. Par exemple si les tirages donnent
0,1,1,0,0,1,0,1,1,0,0,0,1,0,1,1,1,. . . la valeur renvoyée doit être 17.

Exercice 9
a) Ecrire un programme Python qui permet de lire un fichier texte ?
b) Ecrire un programme Python qui permet de lire les n premiers lignes d'un fichier texte ?
c) Ecrire un programme Python qui permet d'ajouter un texte dans un fichier et de l'afficher ?
d) Ecrire un programme Python qui permet de lire ligne par ligne d'un fichier texte et les enregistrer dans
une liste ?

Exercice 10
a) Créer un fichier notesEtudiants_ISMS.txt
b) Ajouter 60 notes appartenant à l’intervalle [0,20], générées aléatoirement dans ce fichier.
c) Ajouter les mots note1, note2…note60 dans ce fichier. Par exemple (note1 14)
d) Modifier ce fichier en ajoutant deux points (:) entre le nom et sa valeur (exp : note 1 : 14)
e) Ecrire les fonctions statistiques nécessaires sur les notes du fichier notesEtudiants_ISMS.txt et créer
un autre fichier Satratisque.txt qui comporte le résultat : Max Min Moyen Médan variance covariance
Ecart-type

Elément du module : Algo & Prog 2 3/4 Année : 2021 - 2022


Exercice 11
a) Ecrire une fonction freqChaine qui prend une chaîne de caractères et renvoie un dictionnaire qui
contient pour chaque lettre de la chaîne son nombre d’occurrences.
Par exemple, freqChaine(’abbabba!’) renverra { ’a’ : 3 , ’b’ : 4, ’!’ : 1}.
b) Ecrire une fonction freqFichier qui prend le nom d’un fichier en argument et renvoie le dictionnaire
contenant les nombres d’occurrences de chaque lettre.
c) Ecrire une fonction maxDic qui prend en paramètre un dictionnaire (dont les valeurs sont des
nombres) et renvoie la clé correspondant à la plus grande valeur. Par exemple, maxDic(’a’: 3, ’b’ : 5 ,
’c’ : 0, ’d’ : 10) renverra ’d’.
d) ´Ecrire une fonction triCles qui prend un dictionnaire (dont les valeurs sont des nombres) et renvoie
la liste des clés du dictionnaire par ordre de valeurs décroissantes dans le dictionnaire. Par exemple,
maxDic(’a’: 3, ’b’ : 5 , ’c’ : 0, ’d’ : 10) renverra [’d’,’b’,’a’,’c’].

Exercice 12
Notre but dans cet exercice est d’écrire un programme qui lit un fichier ‘’données.txt’’ contenant une suite de
n entiers appartenant à l’intervalle [0,20], les triés en utilisant une méthode de tri, et affiche le résultat de tri.

a) Ecrire une fonction qui ouvre le fichier ‘’données.txt’’, lit les valeurs qu’il contient et les écrits dans
une liste L.
b) Ecrire une fonction Trier_ liste qui effectue le tri par ordre croissant des n éléments de L et les écrits
dans une liste L1 selon un algorithme de tri par sélection.
c) Ecrire une fonction saisie_ liste permettant de sauvegarder les éléments triés de la liste L1 dans un
nouveau fichier ‘’données_triées.txt’’
d) Calculer la complexité de l’algorithme de tri par sélection

Rappel :
Sur une liste de n éléments, le principe du tri par sélection est le suivant :
 Rechercher le plus petit élément de la liste et le changer avec l’élément d’indice 0 ;
 Rechercher le second plus petit élément de la liste et le changer avec l’élément d’indice 1 ;
 Continuer de cette façon jusqu’à ce que la liste soit entièrement triée.

Elément du module : Algo & Prog 2 4/4 Année : 2021 - 2022

Vous aimerez peut-être aussi