PYTHON.2.INFO FEUILLE n° 28 D'EXERCICES

                       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).

                                     tkinter42.png

 --------------------------------------------------------------------------------------------------------------                   

    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.

                                         t544.png

                                             ou encore 

>>>
Donnez une lettre en majuscule entre aiguillements"A"
OUI. C'est bien une voyelle.

                                        t545.png

-----------------------------------------------------------------------------------------------

      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()
>>>

                                         tkinter150.png

---------------------------------------------------------------------------------------------------------------------- 

        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():

                                          tkinter151-1.png

                         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.)

_____________________________________________________