0% ont trouvé ce document utile (0 vote)
12 vues13 pages

Python TPs Manip

Le document présente un cours de programmation en Python pour des étudiants en informatique, avec des exercices pratiques sur divers concepts tels que la gestion des taxes, les boucles, les fonctions et la programmation orientée objet. Il inclut des exemples de code pour des tâches spécifiques, comme le calcul de la TVA, l'affichage de nombres pairs et impairs, et la création d'interfaces graphiques avec Tkinter. Les exercices sont conçus pour renforcer les compétences en programmation des étudiants, en leur permettant de manipuler des données et d'appliquer des concepts de manière pratique.

Transféré par

achrafmoslihh1
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
12 vues13 pages

Python TPs Manip

Le document présente un cours de programmation en Python pour des étudiants en informatique, avec des exercices pratiques sur divers concepts tels que la gestion des taxes, les boucles, les fonctions et la programmation orientée objet. Il inclut des exemples de code pour des tâches spécifiques, comme le calcul de la TVA, l'affichage de nombres pairs et impairs, et la création d'interfaces graphiques avec Tkinter. Les exercices sont conçus pour renforcer les compétences en programmation des étudiants, en leur permettant de manipuler des données et d'appliquer des concepts de manière pratique.

Transféré par

achrafmoslihh1
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

EMSI RABAT – Ingénierie Informatique & Réseaux

EMSI 3 – 3°IIR 3 – INFORMATIQUE

Programmation en Langage Script et Python


*===> Études Avancée en Langage Python

Professeurs : Mr. Yves EBOBISSE


And Others

Étudiants : Ibrahim MANNANE


Youssef MAHTAT

Langage PYTHON

Travaux Pratiques
&
Manipulations

(Python pour les Programmeurs C/C++)


TPs & Manips
en
Informatique :

Travaux Pratiques & Manips


en

Langage Python
Pour
Les Programmeurs
C/C++
(Selon le TP du Prof. Mr. Yves EBOBISSE)
→ TP - Manipulation 1 :

**→ Exercice 1 :

 Enoncé :
Soit à réaliser un programme qui permet de lire la quantité et le prix d’un
article et affiche le prix hors taxe, la TVA (20%) et le prix TTC ;

 Résolution :

qte = float(input("Quantite : "))


prix = float(input('Prix : '))
mt_ht = qte*prix
tva = mt_ht * 0.2
print("prix hors tax : ",mt_ht,'dh')
print("TVA : ",tva,'dh')
print("prix ttc : ", mt_ht + tva,'dh')

 Modification :

Modifier le programme précédant :


- Si qte > 70 alors 15% réduction ;
- Sinon Si 40 <= qte <= 70 alors 10% réduction ;

 Résolution :

qte = float(input("Quantite : "))


prix = float(input('Prix : '))
mt_ht = qte*prix
tva = mt_ht * 0.2
reduction = 0
if qte > 70 :
reduction = mt_ht * 0.15
elif qte >= 40 :
reduction = mt_ht * 0.1

print("prix hors tax : ",mt_ht,'dh')


print("TVA : ",tva,'dh')
print("prix ttc : ", mt_ht + tva,'dh')
print("mantant de reduction : ", reduction,'dh')
if reduction > 0 :
print("Prix a payer avec reduction : " , mt_ht + tva - reduction,"dh")
**→ Exercice 2 :
 Enoncé :
Ecrire un programme qui permet d’afficher les nombres pairs compris dans
un intervalle fourni par l’utilisateur ;

 Résolution 1 :

borneInf = int(input("Entrer la borne inferieur : "))


borneSup = int(input("Entrer la borne suprerieur : "))

for i in range(borneInf,borneSup+1):
if i % 2 == 0 :
print(i," est paire")

 Résolution 2 :

borneInf = int(input("Entrer la borne inferieur : "))


borneSup = int(input("Entrer la borne suprerieur : "))

if borneInf % 2 != 0:
borneInf += 1;
pas = 2
for i in range(borneInf,borneSup+1,pas):
print(i," est paire")

**→ Exercice 3 :
 Enoncé :
Ecrire un programme avec la boucle for qui permet d’afficher les nombres
impairs compris dans un intervalle fourni par l’utilisateur ;

 Résolution :

borneInf = int(input("Entrer la borne inferieur : "))


borneSup = int(input("Entrer la borne suprerieur : "))

if borneInf % 2 == 0:
borneInf += 1;
pas = 2
for i in range(borneInf,borneSup+1,pas):
print(i," est impaire")

**→ Exercice 4 :
 Enoncé :
Ecrire une fonction qui permet de calculer la puissance ;

 Résolution :

def puissance(A,B):
if B == 0:
return 1
else :
return A * puissance(A,B-1)
**→ Exercice 5 :
 Enoncé :
Ecrire une fonction qui permet de calculer le Nième terme de la suite de
Fibonacci ;

 Résolution :

# Version itérative :
def fibo(n):
U1 = 1
U2 = 1
U = 1
for i in range(2,n+1):
U = U1 + U2
U1 = U2
U2 = U

return U

# Version récursive :
def fibonacci(n):
if n == 0 or n == 1 :
return 1
else :
return fibonacci(n-1) + fibonacci(n-2)

**→ Exercice 6 :
 Enoncé :
Ecrire une fonction qui permet de calculer le Nième terme de la Factoriel ;

 Résolution :

def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
**→ Exercice 7 :
 Enoncé :
Ecrire une fonction qui permet de déterminer si un nombre entier naturel est
premier ou non ;

 Résolution :

from math import *

def Is_Prime(n):
i = 3
max = int(sqrt(n))
if n % 2 == 0:
return False
while i <= max :
if n % i == 0:
return False
i += 2
return True

**→ Exercice 8 :
 Enoncé :
Soit à réaliser un programme qui permet de lire un entier et affiche si ce
nombre est premier ;

 Résolution :

(On utilise la même fct Is_Prime() définie dans l’exercice 7)


Nbr = int(entree)
if Nbr <= 0 :
print("Veulliez entrer un nombre entier strictement positive")
elif Is_Prime(Nbr) :
print(Nbr," est un nombre premier")
else:
print(Nbr," n'est pas un nombre premier")

 Modification (BONUS) :
 Modifions le programme pour gérer l’exception de la saisie d’une valeur
hors qu’un nombre entier :

entree = input("Enter votre nombre : ")


try:
Nbr = int(entree)
if Nbr <= 0 :
print("Veulliez entrer un nombre entier strictement positive")
elif Is_Prime(Nbr) :
print(Nbr," est un nombre premier")
else:
print(Nbr," n'est pas un nombre premier")
except ValueError:
print ("*HERROUR* Votre n'avez pas tappé un nombre entier !!!" )
→ TP - Manipulation 2 (POO) :

**→ Exercice 9 – Exemple :


 Enoncé :
Soit à réaliser la class Voiture, qui permet de regrouper les informations
d’un objet voiture. Les informations d’une voiture sont :
- Immatriculation ;
- Couleur ;
- Marque ;
- Modèle ;
- Puissance ;
 (On souhaite instancier un tel objet ainsi de l’afficher grâce à une méthode définie)

 Résolution :
class Voiture:

def __init__(self, immat = 0, color = "", marq = "", modl = "", puiss = 0):
self.immatricule = immat
self.couleur = color
self.marque = marq
self.modele = modl
self.puissance = puiss

def affichage(self):
print("Caracteristiques de la voiture sont : ")
print(" immatricule : ",self.immatricule)
print(" couleur : ",self.couleur)
print(" marque : ", self.marque)
print(" modele : ", self.modele)
print(" puissance : ",self.puissance)
→ TP - Manipulation 3 (Interface Graphique) :

**→ Exercice 10 – Problème Simple & Exemple :


 Enoncé :
Soit à réaliser une interface graphique (en Python 3) avec le Framework
Tkinter. Cette interface (simple) permet à un utilisateur de saisi un nom
puis un prénom ainsi de cocher ou pas une case permettant d’indiquer
si les informations entrées sont à un étudiant ou pas ;

 Résolution :
0. Pour utiliser le Framework Tkinter, il faut l’importer dans le
projet :
from tkinter import *

1. Pour créer une interface, il faut instancier un objet (fenêtre) du type


TK :
def Instance_principal_Window() :
window= Tk()
window.title("PrintIsStudent")
window.geometry("350x110")

 L’interprétation :

2. Afin d’insérer le 1er élément label et textbox, il faut créer un


conteneur :
def create_Frame(window):
frame1=Frame(window)
frame1.pack()
return frame1

3. Afin de créer un label et de l’insérer dans un conteneur, on peut


utiliser cette fonction :
def create_Label(frame,PrintedText):
label =Label(frame, text= PrintedText)
label.pack(side=LEFT)
return label
4. Afin de créer un input (graphique), il faut une variable qui va
récupérer les données :
NomvarEntree = StringVar()
Puis on peut créer l’objet input avec la fonction suivante :
def create_Input(frame,VarEntry):
entree =Entry(frame, textvariable=VarEntry)
entree.pack(side =RIGHT)
return entree

5. Afin de créer une case à coucher (graphique), il faut une variable


qui va récupérer les données :
NomvarCheck = IntVar()
NomvarCheck.set(0)
Puis on peut créer l’objet Check avec la fonction suivante :
def create_check(frame,varCheck):
Check = Checkbutton(frame, text="Etudiant",variable=varCheck, onvalue=1, offvalue=0)
Check.pack()
return Check
6. Afin de créer un bouton, avec la fonction suivante :
def create_button(frame, PrintedText , actionFuntion):
btn=Button(frame, text = PrintedText, command = actionFuntion)
btn.pack()
return btn

7. Puis enfin, pour afficher le résultat, on peut soit l’afficher en bas dans un
label, soit dans une nouvelle fenêtre.
- Pour l’afficher dans un label :
 Méthode 1 :

def printLabelMethode1 () :
labelAffichage["text"] = Nom.get() + " " + Prenom.get()
if(isStudent.get()):
labelAffichage["text"] += " est un(e) etudiant(e)"
else:
labelAffichage["text"] += " n'est pas un(e) etudiant(e)"

 Méthode 2 :

def printLabelMethode2() :
String = Nom.get() + " " + Prenom.get()
if(isStudent.get()):
String += " est un(e) etudiant(e)"
else:
string += " n'est pas un(e) etudiant(e)"
labelAffichage.configure(text=String)
- Pour l’afficher dans une nouvelle fenêtre :

def printNewWindow() :
window2= Tk()
frameX1=Frame(window2)
frameX1.pack()
string = Nom.get() + " " + Prenom.get()
if(isStudent.get()):
string += " est un(e) etudiant(e)"
else:
string += " n'est pas un(e) etudiant(e)"
labelXA=Label(frameX1, text= string)
labelXA.pack()
 Enfin, notre programme advient avec les fonctions définies précédemment :
window1 = Instance_principal_Window()

frame1 = create_Frame(window1)
LabelNom = create_Label(frame1,"Nom : ")
Nom = StringVar()
InputNom = create_Input(frame1,Nom)

frame2 = create_Frame(window1)
LabelPrenom = create_Label(frame2,"Prenom : ")
Prenom = StringVar()
InputPrenom = create_Input(frame2,Prenom)

frame3 = create_Frame(window1)
isStudent = IntVar()
isStudent.set(0)
check = create_check(frame3,isStudent)

frame4 = create_Frame(window1)
bouttonValider = create_button(frame4,"VALIDER", printLabelMethode1)
#bouttonValider = create_button(frame4,"VALIDER",printLabelMethode2)
#bouttonValider = create_button(frame4,"VALIDER",printNewWindow)

frame5 = create_Frame(window1)
labelAffichage = Label(frame5, text="")
labelAffichage.pack()

 L’interprétation :

 Avec l’affichage printLabelMethode1() :

 Avec l’affichage printLabelMethode2() :


 Avec l’affichage printNewWindow() :

Vous aimerez peut-être aussi