PYTHON.2. INFO FEUILLE n° 28 D'EXERCICES BTS1 Janvier 2013
Thème: • Réaliser un QCM
• Obtenir un secteur angulaire et un rectangle
dans une fenêtre.
• Les couleurs possibles sont:
'purple','cyan','maroon','green','red','blue','orange','yellow'
• Dans le module Tkinter on dispose de "sous modules" comme:
•• entry: entrée de texte simple
•• text: zone de saisie ou affichage de texte plus évolué
•• menubutton menu lié à un bouton.
pour afficher des dessins.
•• photo pour afficher des images
•• frame: zone pouvant contenir d'autres widgets.
•• labelframe: une frame avec un titre.
•• listbox: afficher une liste.
•• panedwindow: pour séparer une fenêtre ou frame en deux zones ajustables.
•• scrollbar: ascenseurs en bordure de fenêtre, zone de texte ou autre widget
permet d'ouvrir une nouvelle fenêtre
------------------------------------------------------------------------------------------------------------------------------
EXERCICE 1
Que donne le script suivant:
import Tkinter
def ese():
racine=Tkinter.Tk()
fond=Tkinter.Canvas(racine, width=500, height=500, background='white')
fond.pack()
rect=fond.create_rectangle(20,100,350,400, fill='white', outline='red', width=2)
fond.create_arc(5,15,180,150,start=2,extent=130,style=Tkinter.PIESLICE)
racine.mainloop()
--------------------------------------------------------------------------------------------------------------------
REPONSE
On obtient dans la même fenêtre un rectangle dont on a donné les
coordonnées (20 ; 100) et ( 350 ; 400) des deux points de la diagonale principale.
On obtient aussi un secteur angulaire dont un côté est le segment
d'extrémité les points de coordonnées ( 5;15) et ( 180;150).
--------------------------------------------------------------------------------------------------------------
EXERCICE 2
Donner un script qui demande la saisie d'une lettre majuscule entre aiguillemets
puis qui indique s'il s'agit d'une voyelle ou non et qui enfin l'affiche dans une fenêtre
------------------------------------------------------------------------------------------------------------------------
REPONSE:
On peut considérer:
import Tkinter
from random import*
def recherche(a):
voyelles=["A","E","I","O","U","Y"]
if (a in voyelles)==True:
return " OUI. C'est bien une voyelle."
else:
return "Non. Ce n'est pas une voyelle."
###PROGRAMME PRINCIPAL####
lettre=input("Donnez une lettre en majuscule entre aiguillemets")
print recherche(lettre)
cadre=Tkinter.Tk()
fond=Tkinter.Canvas(cadre, width=500, height=500, background='white')
fond.pack()
txt=fond.create_text(160,50, text=recherche(lettre), font="Arial 16 italic", fill="black")
cadre.mainloop()
##########################
On obtient par exemple
>>>
Donnez une lettre en majuscule entre aiguillemets"V"
Non. Ce n'est pas une voyelle.
ou encore
>>>
Donnez une lettre en majuscule entre aiguillements"A"
OUI. C'est bien une voyelle.
-----------------------------------------------------------------------------------------------
EXERCICE 3
Que fait le script suivant?
from Tkinter import*
def exemple():
cadre = Tk()
texte = Label(cadre, text=' Bonjour ', fg = 'black', bg='white')
texte.grid(row = 0, column = 1, sticky = W)
bouton = Button( cadre, text=' Adieu', command=cadre.quit)
bouton.grid(row = 2, column = 3, sticky = E)
cadre.mainloop()
-------------------------------------------------------------------------------------------------------------------
REPONSE:
On obtient : une fenêtre nommée Tk où il y a le texte " Bonjour"
en noir sur fond blanc sur la ligne 0 et la colonne 1 et aussi un
bouton d'arrêt à la ligne 2 et clonne 3
nommé " Adieu" sur lequel on peut cliquer.
>>> exemple()
>>>
----------------------------------------------------------------------------------------------------------------------
EXERCICE 4 QCM
Dans une fenêtre comme dans l'exercice précédent faire apparaître
le texte : QCM Exp est-elle positive?
avec deux boutons à cocher , l'un avec OUI , l'autre avec NON
et qui indique si l'on bon ou mauvais.
---------------------------------------------------------------------------------------------------------
REPONSE:
On peut considérer le programme très simple:
from Tkinter import*
from random import*
def rep1():
print " bon"
def rep2():
print "mauvais"
def qcm():
cadre=Tk()
texte=Label(cadre, text=' QCM Exp est-elle positive ? ', fg = 'black', bg='white')
texte.grid(row = 0, column = 1, sticky = W)
bouton= Button( cadre, text='OUI ', command=rep1)
bouton.grid(row = 2, column = 3, sticky = E)
bouton= Button( cadre, text='NON', command=rep2)
bouton.grid(row = 4, column = 3, sticky = E)
cadre.mainloop()
On obtient quand on lance qcm():
Si l' on clique alors sur OUI il apparaît dans la fenêtre python shell
>>> qcm()
bon
Si l'on cliquepar contre sur NON il apparaît :
>>> qcm()
mauvais
( Remarque on peut remplacer les boutons par des petites cases à cocher.)
_____________________________________________________