Vous êtes sur la page 1sur 16

|TD révision

Module : Programmation Python Enseignante :


Héla OUESLATI

Niveau : TI
TP python révision
Année universitaire :
2023/2024

Liste

Exercice
Soit une liste des produits suivants :

1.Afficher la liste des produits avec deux manières : boucle for et boucle while.

Soit les prix unitaires des produits :

2.Afficher pour chaque produit son prix unitaire (en utilisant %).

3.Ajouter un entête d’affichage.

Soit les quantités des produits :

Enseignante : Hela OUESLATI 1


|TD révision

4.Afficher les noms des produits ainsi que les montants par produit tel que :

montant_produit = prix_unitaire x quantité.

5.Afficher à la fin le montant total = somme de tous les montants par produit.

6.Créer la liste des montant produits.

7.Afficher les noms dans la liste jusqu’à ce que on rencontre « tuyau » on s’arrête.

8.Afficher tous les noms dans la liste sauf « tuyau ».

9.Demander à l’utilisateur de saisir un nom de produit. Puis, rechercher si le produit existe

ou non dans la liste des produits.

Correction

Enseignante : Hela OUESLATI 2


|TD révision

Enseignante : Hela OUESLATI 3


|TD révision

Enseignante : Hela OUESLATI 4


|TD révision

Enseignante : Hela OUESLATI 5


|TD révision

Dictionnaire
Exercice 1

Écrire un programme en Python qui demande à l'utilisateur de saisir dix nombres entiers de
son choix et de lui renvoyer un dictionnaire dont les clés sont les entiers saisis et dont les
valeurs sont les listes des diviseurs des nombres saisis.

Exemple si l'utilisateur saisi les nombres : 2 , 7 , 11 , 5 , 3 , 19 , 14 , 9 , 1 , 4 , le programme


renvoie le dictionnaire:

d = {2 : [1,2] , 7: [1,7] , 14: [1,2,7,14] ,


9: [1,3,9] , 11: [1,11] , 5: [1,5] ,
3: [1,3] , 19: [1,19] , 1: [1] , 4: [1,2,4] }

Correction

# créer une fonction qui détermine la liste des diviseurs pour un


entier donné
def listDivisors(n):
# Initialiser la liste des diviseurs de n

Enseignante : Hela OUESLATI 6


|TD révision

listDiv =[]
# on parcourt la liste des entiers de 1 à n
# et on teste si i est un diviseur de n
for i in range(1,n+1):
if n%i == 0:
listDiv.append(i)
return listDiv

# Création d'un dictionnaire vide pour récupérer les entiers saisis


d = dict({})
for i in range(1 , 11):
# demander à l'utilisateur de saisir un entier
n = int(input("Enter value of integer n : " ))

# on ajoute n et a list de divieurs au dictionnaire d


d[n] = listDivisors(n)

# afficher le dictionnaire d
print("Le dictionnaire généré est : d = ", d)

# on teste l'algorithme
# pour les entiers saisis : 8, 12, 10, 6 , 3, 9, 22 , 11 , 17, 15
# Le dictionnaire généré est : d = {8: [1, 2, 4, 8], 12: [1, 2, 3, 4,
6, 12], 10: [1, 2, 5, 10], 6: [1, 2, 3, 6], 3: [1, 3], 9: [1, 3, 9],
22: [1, 2, 11, 22], 11: [1, 11], 17: [1, 17], 15: [1, 3, 5, 15]}

Exercice 2

Etant donné deux dictionnaires Formation1 et Formation2 dont les clés sont
les noms des modules de formations proposées et dont les valeurs des clés sont
les prix associés en Euro. Formation1 = {"Python" : 350 , "Django" : 400 , "PHP" : 320 ,
"Java" : 450}, Formation2 = {"Python" : 570 , "Django" : 350 , "PHP" : 300 , "Java" : 570}.
Ecrire un algorithme qui génère à partir de ces deux dictionnaires, un autre dictionnaire
nommé Formation formé des mêmes clés et dont les valeurs associées sont
les minimum des valeurs des prix de Formation1 et Formation2.

Correction

Enseignante : Hela OUESLATI 7


|TD révision

Exercice 3

Etant donnée un dictionnaire en python dont les clés sont les noms des élèves et
les valeurs sont leurs âges associés:

1
2 d = {"Robert": 17 , "Catherine" : 21 , "Majid": 23 , "Farid" : 15 }
3
Ecrire un algorithme en python qui remplace les âges des élèves au sein du dictionnaire
par 'mineur' si l'age < 18 et 'majeur' si non.

Correction

Enseignante : Hela OUESLATI 8


|TD révision

Chaines de caractères
Exercice 1

1. Ecrire une fonction nbr_occurence(ch,e) qui reçoit en arguments une chaine de


caractères ch et un caractère e, la fonction retourne le nombre d'occurences du
caractère e dans la chaine ch.
2. Ecrire une fonction pr_occurence(ch,e) qui reçoit en argument une chaine de
caractères ch et un caractè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
3. 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.

Correction

Enseignante : Hela OUESLATI 9


|TD révision

Exercice 2

1. Ecrire une fonction supp_espace(ch) qui recoit en argument une chaine de


caractères ch, la fonction retourne la chaine chaprès avoir supprimé tous les
caractères espaces s'ils existent au début de cette chaine.
2. Ecrire une fonction alphabetique(ch) qui recoit en argument une chaine de
caractères ch, la fonction retourne la chaine chaprès avoir supprimé tous les
caractères qui ne sont pas des caractères alphabétiques dans cette chaine.

Enseignante : Hela OUESLATI 10


|TD révision

3. Ecrire un programme qui permet de saisir une chaine de caractère, puis tester les
deux fonctions définies dans les question 1 et 2.

Correction

Exercice 3

Ecrire une fonction cmp_chaine(ch1,ch2) qui recoit en argument deux chaine de


caractères ch1 et ch2, la fonction compare ch1 et ch2et retourne :
o 1 si ch1 > ch2

Enseignante : Hela OUESLATI 11


|TD révision

o 0 si ch1 = ch2
o -1 si ch1<ch2

Correction

Les fichiers
Exercice 1

1. Écrire un algorithme en Python qui permet de créer un fichier nommé myFile.txt et


d'ajouter le texte: T = "Python est langage de programmation de haut niveau"

Enseignante : Hela OUESLATI 12


|TD révision

2. Écrire un programme en Python qui transforme le contenu du fichier myFile.txt en


écrivant chaque mot dans une ligne séparée.

Correction

1.

# ouvrire le fichier myFile.txt en mode write

f = open("myFile.txt" , 'w')

# écrire dans le fichier myFile.txt

f.write("Python est langage de programmation de haut niveau")

f.close()

2.

# ouvrire le fichier myFile.txt en mode read

f = open("myFile.txt" , 'r')

# récupération du contenu du fichier

content = f.read()

# transformer le contenu en une liste

listContent = content.split()

# fermer le fichier

f.close()

# ouvrire le fichier en mode write

f = open("myFile.txt" , 'w')

# ajouter le contenu au fichier

for line in listContent:

f.write(line + "\n")

f.close()

Enseignante : Hela OUESLATI 13


|TD révision

Exercice 2

Ecrire un programme python qui transforme la liste: L = ["Python Programming" , "Java


programming" , "C++ Programming"] en un fichier texte dont les lignes sont les éléments
de la liste L.

Correction

L = ["Python Programming" , "Java programming" , "C++ Programming"]

# ouvrire un fichier en mode write

f = open("myFile.txt" , 'w')

# ajouter les lignes au fichier myFile.txt

for line in L:

f.write( line + "\n")

f.close()

Exercice 3

1. Ecrire un programme qui permet de lire un fichier existant.

2.Ecrire un programme qui de lire séquentiellement caractère par caractère un fichier.

3.En combinant la méthode readline() avec la méthode while(), écrire un programme


qui permet de lire la totalité des ligne d'un fichier.

Enseignante : Hela OUESLATI 14


|TD révision

4. hanger le programme de la question 1 en appliquant la boucle for.

5. Changer le programme précédent, en récupérant, dans ce cas, le nombre de lignes d'un


fichier.

6. Ecrire un programme qui permet de lire le fichier depuis le caractère 10 jusqu'au caractère
20 de la troisième ligne.

Bon travail

Enseignante : Hela OUESLATI 15


|TD révision

Enseignante : Hela OUESLATI 16

Vous aimerez peut-être aussi