Exercices d'introduction à Python
Exercices d'introduction à Python
2023
Cahier d'exercices
INFORMATIQUE POUR L'INGÉNIERIE
Cahier d'exercices
IINTRODUCTION.......................................................................................................................2
JeINTRODUCTION.....................................................................................................................32
WIDGETS .............................................................................................................................33
CPLACER LES WIDGETS DANS LA FENÊTRE......................................................................................35
1
Cahier d'exercices
Objectifs
Introduction
Python est un langage de programmation à usage général qui peut être dit que c'est
multiparadigme, car il prend en charge la programmation orientée objet, la programmation impérative et, dans une moindre mesure
mesure, programmation fonctionnelle. C'est un langage interprété, utilise le typage dynamique et est
multiplateforme. C'est un bon langage pour s'initier au monde de la programmation en raison de sa
simplicité, polyvalence et rapidité de développement, cela est dû au fait que sa syntaxe est très simple.
Un autre avantage est qu'il possède une licence open source. Pour écrire des programmes en Python ne
il faut plus que de télécharger le langage qui dispose de son propre IDLE (Integrated
Environnement de Développement et d'Apprentissage
Python). Cet IDLE comprend deux fenêtres : la fenêtre Shell et la fenêtre de l'éditeur. Ici
nous pouvons introduire les instructions et voir directement le résultat que cela nous fournit
interprète. Pour télécharger Python, vous pouvez vous rendre sur la page [Link] Dans les
Les exercices utiliseront la version 3.6.5 ou ultérieure.
En plus de l'IDLE de Python lui-même, il existe des outils plus complets pour écrire les
programmes, ce que l'on appelle habituellement l'IDE (Environnement de Développement Intégré).
Certaines options sont payantes et d'autres gratuites. Pour ce cours d'introduction à la programmation,
Thonny a été choisi. C'est un IDE facile à utiliser, simple, gratuit et multiplateforme (Windows, Linux
y Mac). La page d'où vous pouvez le télécharger et obtenir plus d'informations est : [Link]
2
Cahier d'exercices
Environnement Thonny
a. Barre de menus :
• File. Opciones para Crear, Guardar, Abrir o Imprimir programas.
• Éditer. Copier, Coller, Couper, mettre des commentaires en Python, nettoyerShell, etc.
• Afficher. Montrer/Cacher des fenêtres, changer la taille des lettres, etc.
• Run. Ejecutar,Debugde programar,Breakpoints, etc.
• Outils. Ajouter des paquets, OuvrirShell, etc.
b. Options les plus courantes
•Crear un programa en blanco, abrir un programa, guardar, ejecutar, opciones
dedebugystop.
c. Code du programme actuel. Permet d'avoir plus d'une fenêtre ouverte avec différents
programmes.
d. Shell peut exécuter les instructions et voir le résultat de celles-ci.
e. Différentes fenêtres où il convient de souligner la fenêtre des variables qui permet de voir la valeur
des variables du programme.
f. Travail avec des objets.
On utilisera la fenêtre Shell pour écrire des commandes. Se positionner dans l'invite et écrire les
les phrases suivantes :
3
Cahier d'exercices
Jouez avec le langage et effectuez des opérations mathématiques courantes, vous pouvez utiliser des chaînes de
caractères comme dans l'exemple.
appuyer sur le bouton de la barre Dans ce cas, nous avons nommé le programme "[Link]", et dans
L'écran de la fenêtre affiche le nom reflété dans l'onglet.
Pour exécuter le programme actuel, il est nécessaire de sélectionner l'option Exécuter le script actuel dans le menu.
Crea tres variables de tipo entero y asígnales los siguientes valores: 5, 14, 37. Escribe las
les phrases suivantes :
4
Cahier d'exercices
• Écris une expression dans laquelle tu mélanges deux types d'opérateurs différents et qui soit
valide le résultat que tu obtiens.
Crea dos variables de tipo cadena de caracteres. Asígnales los siguientes valores: “Buenos” y
«jours». Écrivez les phrases suivantes :
Dando los siguientes valores: a = 20, b = 10, c = 15 y d = 5. Realice los siguientes cálculos:
• (a + b) * c / d
• ((a + b) * c) / d
• (a + b) * (c / d)
• a + (b * c) / d
Vérifiez le résultat et commentez comment la priorité est résolue.
Exemple du résultat :
5
Cahier d'exercices
Dados dos puntos en el espacio calcular la distancia que los separa (asignar los valores
directement). Les points seront définis par leurs trois coordonnées x, y, z. La formule pour calculer
la distance est celle indiquée ci-dessous.
La distance entre les points (2.0, 3.0, 4.0) et (5.0, 6.0, 7.0) est :
5.196152422706632
Complementaire 1.2. Recherche sur le web des applications connues utilisant le langage de
programmation Python.
6
Carnet d'exercices
Objectifs
Exercice 2.1. Calculer la distance entre deux points donnés par l'utilisateur
Demander à l'utilisateur les valeurs de deux points dans l'espace et calculer la distance qui les sépare.
Les points seront définis par leurs trois coordonnées x, y, z. La formule pour calculer la distance est
la que se montre ci-dessous.
Pedir al usuario su nombre y sus dos apellidos, almacenarlos en tres variables. Hacer las
phrases suivantes :
• Montrer le premier nom de famille, le deuxième nom de famille et le prénom. En majuscules le premier.
letter of each word.
Exemple du résultat :
7
Cahier d'exercices
• Demandez un numéro de téléphone fixe à l'utilisateur et vérifiez que le numéro soit valide. C'est
válido si tiene el tamaño adecuado y todos los caracteres son números.
• Demande le nom de la rue et vérifie que tous les caractères qui la composent sont
lettres et/ou espaces. Il doit contenir au moins un caractère qui ne peut pas être blanc.
• Demander le DNI et indiquer s'il est correct. Il doit avoir 9 caractères, les 8 premiers de
ce sont des chiffres et la dernière une lettre majuscule.
• Demander l'âge sous forme de valeur entière et vérifier s'il est dans la plage de 18 à 81
les deux inclus.
8
Cahier d'exercices
9
Cahier d'exercices
Objetivos
Exemple du résultat :
Concevoir un programme qui, à partir du rayon d'un cercle, permet de calculer son diamètre.
périmètre et aire. Pour cela, un menu d'options possibles sera présenté à l'utilisateur. S'il choisit un
Une option différente de celles présentées affichera un message d'erreur (l'option peut être dans
majuscules ou minuscules) et l'option sera redemandée. Le résultat sera affiché avec trois
décimales, et la valeur reçue peut être entière ou flottante.
Exemple du résultat :
Sumar los dígitos de un número entero positivo previamente introducido por el usuario. Piensa
deux façons différentes de le faire.
Exemple du résultat :
10
Cahier d'exercices
Le programme qui suit indique qu'il imprime l'instruction print chaque fois qu'il
ejecuta, si es que se ejecuta. Si tienes dudas de cómo se comporta el programa utiliza el Debug
pour voir comment les variables changent : i, j, k.
i, j, k = 0, 0, 0
tandis que i < 3 :
tandis que j < 3 :
tandis que k < 3 :
imprimer(i,j,k)
k += 1
j += 1
k=0
i += 1
j=0
Devine 50
Le numéro que tu dois deviner est plus grand.
Devine 75
Le numéro que tu dois deviner est plus grand
Devine 90
Le numéro que tu dois deviner est plus grand
Devine 95
Le numéro que tu dois deviner est plus petit
Adivina 93
Le nombre que tu dois deviner est inférieur
Intentos intento1 50 intento2 75 intento3 90 intento4 95 intento5 93
Numéro 92
Tu as perdu
Introduire deux nombres entiers et positifs et imprimer s'ils sont amis. Deux nombres amis sont
deux nombres entiers positifs a et b tels que la somme des diviseurs propres de l'un est égale à
un autre numéro et vice versa.
Exemple du résultat :
11
Cahier d'exercices
Introduisez un nombre entier positif (N), et générez N paires de nombres premiers jumeaux (deux
Les nombres sont des jumeaux premiers si, en plus d'être des nombres premiers, la différence entre eux est
exactement deux).
Exemple du résultat :
Introduire un numéro : 4.
Resultado:
Parejas de números son: 3 y 5, 5 y 7, 11 y 13, 17 y 19.
Introducir un número entero y positivo. Comprobar la siguiente igualdad, visualizando cada uno
des termes :
1 3 +2 3+ 3 +⋯
3
= 1+( 2 + 3+. . )2
Exemple du résultat :
Introduire un nombre : 5
Resultado: 225. Afirmación correcta.
Vérification :
Égalité 1 : 1 + 8 + 27 + 64 + 125 = 225
Égalité 2 : 15^2 = 225
Exemple du résultat :
Introduire le numéro : 28
Le 28 est un nombre parfait. Ses diviseurs sont : 1 + 2 + 4 + 7 + 14.
Introducir el número: 5.
Le 5 n'est pas un nombre parfait.
12
Cahier d'exercices
Objectifs
Développez un programme qui demande à l'utilisateur le nombre d'additions qu'il souhaite effectuer.
s'approcher de la valeur de e. Imprimez le résultat de chaque itération. Montrez le terme calculé
et la valeur de la somme et la différence de celle-ci avec la valeur de la constante e de Python.
Exemple du résultat :
13
Cahier d'exercices
Exemple du résultat :
Demander une phrase à l'utilisateur et créer avec elle une liste. Afficher à l'écran les mots qui
former la liste. Demander à l'utilisateur une lettre et supprimer cette lettre de tous les mots de la liste
montrant la position du mot dans la liste et la position de la lettre dans le mot. Montrer
comment la liste se présente et compter le nombre de lettres supprimées.
14
Cahier d'exercices
Le programme devra :
• Lister tous les joueurs des deux équipes qui ont les voyelles suivantes
au nom : "AEI".
• Lister tous les joueurs des deux équipes qui ont deux voyelles ou plus
égales dans le nom.
• Afficher les joueurs avec des noms répétés.
Ejemplo del resultado:
['JUAN', 'ANA', 'LUZ', 'TOM', 'RAÚL', 'SARA', 'LUIS', 'BO', 'RAFA', 'PAM',
'CRUZ', 'ARON', 'GON', 'TATO', 'LOU', 'JAVE', 'TORO', 'RAFA', 'CARRIE',
'CARLA', 'JUAN']
Vocales A E I
['JUAN', 'ANA', 'RAÚL', 'SARA', 'LUIS', 'RAFA', 'PAM', 'ARON', 'TATO', 'JAVE',
'RAFA', 'CARRIE', 'CARLA', 'JUAN']
Vocales Égales
['ANA', 'SARA', 'RAFA', 'TORO', 'RAFA', 'CARLA']
Nombres Répétés
["JUAN","RAFA"]
Exemple du résultat :
Total éléments 6
Número = 3
Número = 6
Número = 9
Número = 34
Número = 2
Número = 9
(3, 6, 9, 34, 2, 9) Máximo 34 mínimo 2 máximo-mínimo 32 media 10.5
El usuario introducirá todos los resultados arrojados por una función cualquiera y el programa
détectera tous les maxima locaux et les comptera. Une fois que cela sera terminé
introduire toutes les données. Le programme affichera les calculs suivants :
15
Cahier d'exercices
Écrire un programme en Python qui génère des mots de passe de 8 caractères de manière aléatoire.
caractères doivent être des lettres majuscules A-Z, 2 caractères doivent être des lettres minuscules a-z, 2 caractères
ils doivent être des chiffres 0-9 et les deux derniers caractères spéciaux (!, ?, *, #,=,-,),ç). Vérifiez le code
ASCII.
Contraseña: MBpd55*-
.
L'utilisateur est invité à fournir une phrase et l'acronyme de celle-ci est imprimé (les premières lettres de
chaque mot). Ne doivent pas être inclus (de, del, et).
Exemple du résultat :
16
Cahier d'exercices
Calculer tous les nombres triangulaires de 1 jusqu'à la valeur indiquée par l'utilisateur. La formule
Pour calculer un nombre triangulaire, il faut :
( + 1)
=
2
Exemple du résultat :
Valor de N ==>10
T 1 = 1.0
T 2 = 3.0
T 3 = 6.0
T 4 = 10,0
T 5 = 15,0
T 6 = 21,0
T 7 = 28.0
T 8 = 36.0
T 9 = 45.0
T 10 = 55.0
Le programme doit afficher à l'écran une représentation des pièces d'un domino
standard.
Exemple du résultat :
17
Cahier d'exercices
Exemple du résultat :
Où :
• Vérifiez que la somme des facteurs de pondération des données soit égale à
100 %. Si cela n'est pas respecté, un message d'erreur est envoyé dès que cela est détecté.
Sino, le pronostic demandé est imprimé.
• Contrôlez les éventuelles erreurs (saisie de données).
18
Cahier d'exercices
Exemple du résultat :
Donne-moi n ==> 4
ventas del mes 1: 100000
La pondération de 100000,0 est 10
ventas del mes 2: 90000
La pondération de 90000.0 est 20
ventas del mes 3: 105000
la pondération de 105000.0 est 30
ventas del mes 4: 95000
la pondération de 95000.0 est 40
La prévision est 97500,0
Écrire un programme en Python qui demande une chaîne au clavier, introduire les caractères dans
une liste sans caractères répétés et imprimez la liste finale, c'est-à-dire les caractères sans répétition.
Preguntar repetidamente al usuario cuál carácter quiere eliminar de la lista, eliminarlo y mostrar
la nouvelle liste. Le programme s'arrêtera lorsque l'utilisateur introduira le caractère "*".
Exemple du résultat :
Donnez-moi une chaîne : ceci est le test d'une chaîne quelconque pour voir comment
travaille le programme
['e', 's', 't', 'o', ' ', 'l', 'a', 'p', 'r', 'u', 'b', 'd', 'n', 'c', 'q']
'i', 'v', 'm', 'j', 'g']
Caractère à supprimer ou (*): ou
est labr dnc qi
["v","m","j","g"]
Caractère à supprimer ou (*): g
est la prudence
["v","m","j"]
Caractère à supprimer ou (*): *
es: [‘MMM’, 12, 23, 45, 98]
Vérifier si le NIF saisi par un utilisateur est correct. Un NIF est correct s'il a 8 chiffres.
et lettre. La dernière lettre du DNI est calculée à partir de ses numéros, le nombre est divisé par 23 et
le reste est un nombre entre 0 et 22. La lettre qui correspond à chaque numéro, tu l'as dans cette
tabla:
19
Cahier d'exercices
cadena_1="aBcdE"
cadena_2="1465"
Faites en sorte qu'en quelques phrases, le résultat que vous voyez à l'écran soit :
• aBcdEaBcdEaBcdEaBcdE14691469
Exemple de résultat :
Exemple du résultat :
Donnez-moi une phrase : cette phrase est aléatoire et contient plusieurs mots
["cette","phrase","est","aléatoire","et","contient","plusieurs","mots"]
elemento aleatoria: lista ['esta', 'frase', 'es', 'y', 'contiene', 'varias',
'palabras']
['contiene', 'es', 'esta', 'frase', 'palabras', 'varias', 'y']
["y","plusieurs","mots","phrase","cette","est","contient"]
20
Cuaderno de Ejercicios
Objectif
On note les données de collecte de 5 canalisations d'eau pendant les sept jours de la semaine.
une des machines de l'usine. une matrice de deux sera créée dans le programme principal
dimensiones del tipo de datos float de 5x7 que contenga ceros en todas sus posiciones.
Il faut:
• Remplir la matrice avec des nombres aléatoires de type flottant avec des valeurs depuis
[150,52 à 321,19]. Tous les éléments de la matrice sont arrondis pour qu'ils aient
seulement deux décimales.
• Créer une liste avec la somme des totaux des litres recueillis de chacune des
cinco tuberías.
• Crear una lista con suma de los totales de los litros recogidos de cada día.
• Rechercher la valeur maximale de collecte de toutes les données.
• Calculer combien de litres d'eau reçoit la machine.
Une entreprise de fabrication de réfrigérateurs possède plusieurs usines, dont nous avons la
informations suivantes :
• Créer une matrice avec des données fixes contenant dans chaque ligne les informations d'un
usine, dans l'ordre indiqué dans la liste précédente.
21
Cahier d'exercices
• Ajouter le code nécessaire pour pouvoir ajouter des informations sur plus d'usines dans le
matrice.
• Calculer la production totale conjointe.
• Calculer la production totale conjointe sans erreurs.
• Mostrar una lista con las ciudades cuya producción total supera las 500 unidades.
• Mostrar cuál es la fábrica con mayor producción total.
• Afficher l'usine avec le plus faible pourcentage d'unités défectueuses. Afficher
aussi le pourcentage arrondi à deux décimales (utiliser la fonction round(valeur,
núm_decimales).
• Modifier le point 2 pour éviter d'introduire des villes répétées. Dans ces cas-là, on
il notifiera l'erreur à l'utilisateur et le reste des informations pour cette ville ne sera pas demandé.
Écrire deux matrices de mêmes dimensions et calculer la matrice résultante de leur somme.
Écrire deux matrices et calculer la matrice résultante de leur produit. Il faut tenir compte que
le nombre de colonnes de la première matrice doit correspondre au nombre de lignes de la deuxième.
Complémentaire 6.3.
• Opération élémentaire : multiplier une ligne par un scalaire. Étant donné un scalaire et un
numéro de ligne, multiplier les valeurs de cette dernière par l'échelle.
4 1 2 4 1 2
3 3 2 → 9 1 9 63→
1 5 1 1 5 1
• Opération élémentaire : somme de lignes. Étant données deux numéros de ligne, additionner à la seconde.
les valeurs de la première.
4 1 2 4 1 2
3 3 2 → 0 3 3 2→
2
1 5 1 5 6 3
22
Cahier d'exercices
4 1 2 1 5 1
3 3 2 → 3 3 0 22→
1 5 1 4 1 2
23
Cahier d'exercices
Objectifs
Calculez les secondes d'une période de temps exprimée en heures:minutes:secondes. Dans les
Heures : un intervalle de [0-23] sera admis, en minutes et secondes [0-59]. Pour cela :
Dans le service de location de vélos "Le promenade" de l'Université La Grande, une fois que le
l'utilisateur qui s'inscrit au service doit indiquer à la fin du mois le nombre de fois que
a utilisé le vélo sur le campus et la durée en heures:minutes:secondes qu'il a mise à
chaque parcours. Le programme calculera le nombre total de secondes par parcours et les
multiplicará por el coste. El coste es de 0,001 €. Desarrolle un programa que:
24
Cahier d'exercices
• Pour chaque fois que vous l'avez utilisé, obtenez la période de temps
heures:minutes:secondes. Utilisez les routines créées dans l'exercice précédent.
• Sauvegardez les données dans une liste. Créez une fonction qui reçoit les secondes de chaque
période de temps et les ai enregistrés dans la liste.
• Créez une fonction qui parcourt la liste et stocke dans une chaîne les données de
secondes et le coût de chaque parcours, ainsi que les totaux accumulés tant de
secondes comme des coûts.
• Montrez le résultat dans le programme principal. C'est ici qu'il sera déclaré.
liste et le coût par seconde.
Exemple du résultat :
L'utilisateur saisira deux points quelconques (x1,y1) et (x2,y2) et pourra effectuer différentes
opérations : distance et point milieu.
Pour cela :
• Une fonction sera créée pour demander un point et le stocker dans une variable de type
tuple.
• Créer une fonction qui reçoit les deux points comme paramètre d'entrée et renvoie
la distance entre les deux.
• Fonction qui calcule le point milieu des deux points d'entrée.
• Fonction qui imprime les différentes options du programme (menu) à l'écran.
• Función que lea la opción escogida por el usuario y compruebe que está en el rango
désiré, sinon elle continuera à la demander (vous pouvez réutiliser la fonction du
exercice 1).
• Dans le programme principal, assemblez les différents appels aux fonctions pour
obtenir un programme fonctionnel.
25
Cahier d'exercices
Exemple du résultat :
Trois nombres saisis par l'utilisateur seront triés par ordre croissant. Cela sera implémenté.
une fonction qui reçoit comme paramètre seulement deux nombres et les retourne triés. Le reste de
Les instructions seront dans le programme principal.
Exemple du résultat :
donne-moi un numéro : 5
dame un número: 3
donne-moi un numéro : 1
ordonnés ==> 1 3 5
Dans l'exercice 2, restructurez le programme pour stocker des tuples contenant les trois données.
de la période de temps.
De plus :
• Implémenter une fonction qui parcourt la liste de période et crée une autre liste
stockant les secondes totales de durée de la période.
26
Cahier d'exercices
• Créer une fonction qui trie les deux listes par ordre croissant.
• Créer une fonction qui additionne tous les éléments de la liste des secondes totales.
• Afficher à l'écran, la liste où est stocké la période de temps, les
secondes de chaque période et le total des secondes.
Exemple du résultat :
Exemple du résultat :
As-tu le code complet du jeu Tic Tac Toe ? Copie-le et vérifie qu'il fonctionne.
Documentez les paramètres d'entrée que chaque fonction du jeu reçoit, et les
valeurs qu'elle renvoie, résume également brièvement ce que fait chacune d'elles. De plus,
réponds ce qui suit :
27
Cahier d'exercices
• Que faut-il faire pour indiquer que le tirage du joueur est valide (quelles fonctions s'en chargent)
et comment ils le font).
"""
Trois en ligne
"""
importer aléatoire
tableau=[i pour i dans la plage(0,9)]
player, computer = '',''
#Coin, Centre et autres
moves=((1,7,3,9),(5,),(2,4,6,8))
# Combinaisons gagnantes
winners=((0,1,2),(3,4,5),(6,7,8),(0,3,6),(1,4,7),(2,5,8),(0,4,8),(2,4,6))
# Tableau
tab=plage(1,10)
def afficher_plateau():
x=1
pour i dans le tableau :
end = ' | '
si x%3 == 0 :
end = ' \n'
si i != 1 :
fin+='---------\n'
char=' '
si je dans ('X', 'O'):
char=i
x+=1
print(char, fin=end)
def choisir_personnage():
chars=('X','O')
si [Link](0,1) == 0 :
return chars[::-1]
retourner des caractères
def peut_deplacer(brd, joueur, coup):
si déplacer dans l'onglet et brd[deplacer-1] == deplacer-1 :
retourner True
retourner Faux
def peut_gagner(brd, joueur, mouvement):
places=[]
x=0
pour i dans brd :
si je == joueur : [Link](x);
x+=1
win=True
pour tup dans gagnants :
win=True
pour ix dans tup :
si brd[ix] != joueur :
win=False
pause
si gagner == Vrai :
pause
retourner gagner
def faire_coup(brd, joueur, coup, annuler=False):
si peut_deplacer(brd, joueur, mouvement) :
brd[move-1] = player
win=can_win(brd, player, move)
si annuler :
brd[move-1] = move-1
(Vrai, gagner)
retourner (Faux, Faux)
28
Cahier d'exercices
def mouvement_ordinateur() :
move=-1
pour i dans la plage(1,10):
si faire_coup(tableau, ordinateur, i, Vrai)[1]:
move=i
pause
si déplacement == -1 :
pour i dans la plage(1,10):
si faire_coup(plateau, joueur, i, Vrai)[1]:
move=i
pause
si deplacement == -1 :
pour tup dans mouvements :
pour mv dans tup :
si déplacement == -1 et peut_déplacer(tableau, ordinateur, mv) :
move=mv
pause
retourner faire_un_coup(tableau, ordinateur, coup)
def espace_existe() :
return [Link]('X') + [Link]('O') != 9
joueur, ordinateur = choisir_personnage()
print('Le joueur est [%s] et l'ordinateur est [%s]' % (player, computer))
result='%%% Empate ! %%%'
tant que l'espace_existe() :
imprimer_plateau()
print('#Tira ! [1-9] : ', end='')
deplacer = int(input())
déplacé, gagné = faire_déplacement(tableau, joueur, mouvement)
si pas déplacé :
print(' >> Numéro incorrect ! Essayez encore !')
continuer
si gagné :
result='*** Felicidades ! GANASTE ! ***'
pause
elif computer_move()[1]:
result='=== PERDISTE! =='
pause;
imprimer_plateau()
imprimer(résultat)
29
Cahier d'exercices
Objectif
Supposons que nous disposons d'un fichier nommé Donné[Link] dans lequel sont enregistrées les
données d'un laboratoire depuis 8h00 du matin jusqu'à 20h00 en une journée, les données
ils sont pris à l'heure précise et à la demi-heure de manière ininterrompue. Les données qui sont recueillies
son:
8;30;976;17.1;68.35;9
À partir des données du fichier précédent, on souhaite une application informatique qui affiche :
30
Cahier d'exercices
importer [Link]
ruta=[Link]()
Pour vérifier si le fichier existe :
si [Link](fichier) :
Complémentaire 7.1. Réaliser les exercices proposés dans le Cahier d'exercices résolus
correspondant à la partie fichiers.
31
Cahier d'exercices
Objectifs :
Introduction
Python implémente des interfaces graphiques utilisateur (GUI Interfaces Graphiques Utilisateur) en utilisant
bibliothèques, l'une des plus utilisées est la bibliothèque tkinter qui est incluse dans Python comme un
paquet standard, donc il n'est pas nécessaire d'installer quoi que ce soit pour l'utiliser. tkinter est l'acronyme
pour tk interface et permet de générer des interfaces de manière rapide et simple.
En esta ejercicio nos centraremos en los tres primeros pasos, los eventos y cómo responder a
nous le verrons dans la deuxième partie.
Le module tkinter s'importe de la même manière que les autres modules en utilisant l'instruction import.
de tkinter import *
importer tkinter comme tk
Les deux méthodes précédentes font la même chose, mais il est très courant de voir la seconde où l'on
renommer tkinter en tk.
Pour initialiser tkinter, nous devons créer la fenêtre principale (celle qui contient tous les widgets)
et maintenir le programme en cours d'exécution. Les deux méthodes que nous devons inclure sont :
1. Tk(): crée la fenêtre principale, c'est la surface (ou conteneur) sur laquelle vont se déployer.
répondre aux événements tant que la fenêtre principale n'est pas fermée.
32
Cahier d'exercices
Dans la troisième étape, nous devons décider quels widgets nous voulons inclure dans notre
fenêtre, et leur donner l'apparence et l'emplacement que nous souhaitons dans celle-ci. Chaque widget a
attributs propres.
Widgets
Ce sont de petits programmes qui sont utilisés pour ajouter des fonctions, simplifier ou automatiser.
ces actions qui sont effectuées fréquemment. Pour donner du contenu et de la forme à notre
dans la fenêtre, nous incluons des widgets. Nous listerons les widgets que nous utiliserons dans l'exercice et certains de
ses attributs.
Étiquette : se traduit par étiquette et fait référence à une boîte où l'on peut afficher du texte ou
images. L'image ou le code affiché peut être mis à jour pendant l'exécution.
lbl=Label(ventana, opción=valor)
image, compound
txt=Entry(ventana, opción=valor)
Les boutons peuvent contenir du texte ou des images et peuvent être associés à des fonctions ou des méthodes. En faisant
Cliquez dessus, tkinter se charge d'appeler automatiquement la fonction associée.
btn=Button(ventana, opción=valor)
image, command, cursor, compound
RadioButton : Permet à l'utilisateur de choisir une seule option parmi l'ensemble des options proposées.
On peut associer une méthode qui sera exécutée lorsque l'utilisateur choisit l'option. Chaque groupe
les boutons radio doivent être associés à la même variable, lorsqu'on en sélectionne un,
la valeur de la variable associée change.
CheckButton: Seleccionar una o múltiples opciones del conjunto propuesto. Tiene dos valores
possibles : sélectionné et non sélectionné.
33
Cuaderno de Ejercicios
fr=Frame(ventana, opción=valor)
title, command
Classe PhotoImage : cette classe est utilisée pour afficher des images dans des widgets, tels que des étiquettes,
boutons, toile et type de texte. Travaille avec GIF et PGM/PPM.
imagen = PhotoImage(fichier=fichero)
• bd : largeur du bode.
• bg: color de fondo.
• appel d'une fonction.
• police : fonte du texte. Ce que nous pouvons indiquer sur la police est :
ofamily: nombre: Arial, Courier, Comic Sans MS, Fixedsys, MS Sans Serif,
MS Serif, Symbole, Système, Times et Verdana.
osize: tamaño
oweight: NORMAL o BOLD
oslant: NORMAL o ITALIC
ounderline: 1(subrayar) o 0(no subrayar)
ooverstrike: 1(tachar) o 0 (no tachar)
• fg : couleur du texte
• image: image que veut être affichée.
• largeur : établir la largeur.
• height: establecer alto.
• texte qui montre l'étiquette
• justifier : justifie le texte. Accepte les paramètres suivants : GAUCHE, DROITE et CENTRE.
• composé : utiliser en même temps du texte et des images : BAS, GAUCHE, DROITE et
Haut.
• pady, padx, ipady, ipadx : spécifient (en pixels) les marges externes et internes
d'un élément.
Configurer
On peut définir l'aspect des widgets depuis leur instanciation ou en utilisant configure pour
changer la valeur d'un ou plusieurs attributs du widget.
[Link](option=valeur)
34
Cahier d'exercices
Exemple 1. Début
Résultat de l'exécution
Des widgets supplémentaires sont ajoutés à la fenêtre précédente. L'idée est de créer une interface comme celle que se
exemple. La méthode pack sera utilisée pour placer les widgets. Vous pouvez utiliser d'autres sources et
couleurs.
35
Cahier d'exercices
de tkinter import *
ventana = Tk()
[Link]("Un programa diferente")
[Link]("550x550")
[Link](bg="azur")
lblFicha = Label(ventana, text="Ficha Técnica", font=("Arial Bold",
20),bg="gris", fg="noir".pack()
lblPresenta = Label(ventana, text="Datos más importantes del personaje ",
font=("Arial Bold", 15), fg="red").pack()
imagen = PhotoImage(file="[Link]")
lblimagen = Label(ventana, image=imagen)
[Link]()
lblModelo = Label(ventana, text="Modelo", font=("Arial Bold", 10)).pack()
txtModelo = Entry(ventana,width=10).pack()
lblCarac = Label(ventana, text="Características", font=("Arial Bold",
10)).pack()
txtCarac = Entry(ventana,width=30).pack()
lblUni = Label(ventana, text="Unidades", font=("Arial Bold", 10)).pack()
txtUni = Entry(ventana,width=10).pack()
lblPrecio= Label(ventana, text="Precio", font=("Arial Bold", 10)).pack()
txtPrecio = Entry(ventana,width=10).pack()
btnAceptar = Button(ventana,text="Aceptar",width=10,fg="red").pack(side=RIGHT)
Quitter
commande=[Link]).pack(côté=DROIT)
[Link]()
ventana.détruire()
Résultat de l'exécution
Changer l'interface de l'exemple 2 pour obtenir le résultat suivant, en utilisant une grille.
36
Cahier d'exercices
Concevez votre propre interface pour stocker vos contacts. L'interface devra contenir ce qui suit
información: foto de la persona, nombre, apellidos, edad, sexo, teléfono, correo electrónico.
Vous pouvez utiliser grid ou pack pour placer les widgets.
37
Cahier d'exercices
Objectifs
Variables de contrôle
Ce sont des objets spéciaux qui sont associés à certains widgets (texte, bouton radio, case à cocher, etc.)
pour stocker ses valeurs et faciliter leur disponibilité dans d'autres parties du programme. Si le
la variable change, le widget lié change aussi et vice versa. Tkinter a quatre types de
variables et disposent de trois méthodes : set(), get() et trace. La première fixe la valeur, le
le second consulte et le troisième surveille les changements des variables. Les types de variables
fils
La méthode trace() est utilisée pour "détecter" quand une variable est lue, change de valeur ou est
borrada:
[Link](type, function)
En tipo se indique ce que l'on veut vérifier : 'r' lecture de variable, 'w' écriture de variable et 'u'
borrado. Le deuxième argument indique la fonction qui sera appelée lorsque l'événement se produira
que celui-ci est en train de contrôler.
Nous utiliserons l'application précédente (Partie I) et nous y ajouterons deux types de contrôles : bouton radio
vérifier le bouton, avec ses variables de contrôle respectives. Une fonction sera créée pour imprimer que
les options sont sélectionnées pour montrer comment le changement dans les sélections affecte les
variables de contrôle.
Le programme vérifiera que les unités ont une valeur de type entier, et que le prix a
un valor de tipo flotante. Se añadirá una etiqueta para desplegar el resultado de la multiplicación
des unités par le prix et une autre étiquette où les messages d'erreur seront affichés en cas
de les avoir. Chaque fois que la valeur des unités ou le prix est modifié par l'utilisateur, il se
38
Cahier d'exercices
il vérifiera d'abord que la valeur est du bon type, si c'est le cas, le total est calculé et affiché
dans l'étiquette correspondante, sinon, le message d'erreur s'affiche. Pour cela, on
Ils créeront également les variables de contrôle pour les widgets : prix et unités, on utilisera le
méthode trace pour savoir quand la valeur change.
Lorsque l'utilisateur appuie sur le bouton Accepter, il sera vérifié que les champs soient différents de
blanco (Nom, Caractéristiques et Unités), si l'un d'eux est vide, un message sera envoyé
erreur dans l'étiquette créée à cet effet, si elle a une valeur, elle sera affichée : PRÊT !!!. Le code serait :
Resultado de la ejecución
de tkinter import *
ventana = Tk()
[Link]("Un programa")
[Link]("560x390")
#fonctions
def comprobar(*args): #déclaration de la fonction avec les paramètres par
défaut
essayer :
[Link](" ") #nettoyer l'étiquette du message
uni=int([Link]()) #Obtenir les valeurs des variables et
les convertir
prec=float([Link]()) #au type de donnée
[Link](round(float(prec*uni),2)) #Calculer le prix final et
rondir
sauf :
[Link]("ERREUR") #Afficher l'erreur
[Link](0) # Laisser 0 dans le total
#Muestra por que opciones está marcadas, cada vez que el usuario selecciona
une
def Imprimer():
print("Utilisé " + str([Link]())) #Indique quelle option est sélectionnée
print("Bateries " + str([Link]())) #Montre vrai ou faux si elles sont
marquées les batteries
39
Cahier d'exercices
def CambiaColores(event):
colores=["azure","cadet blue","medium sea
green","goldenrod","salmon","maroon","PeachPuff3","SteelBlue3"]
colorM=len(couleurs)
couleurN globale
si colorN==colorM-1 :
colorN=0
sinon :
colorN+=1
[Link](bg=colores[colorN])
40
Cuaderno de Ejercicios
[Link]('<Button-1>',CambiaColores)
[Link]()
ventana.détruire()
• Chaque fois que le champ âge est modifié, vérifier que la nouvelle donnée est un type
de données entières sinon, envoyer un message d'erreur.
• Vérifiez que le numéro de téléphone doit avoir 9 caractères et que tous doivent être
séries numériques.
• Haz lo mismo con el campo correo electrónico, para indicar que el campo es
correct, il suffit qu'il ait le signe “@” et un point.
• Añade tres botones: Limpiar, Aceptar, Salir.
• Le bouton nettoyer blanchit tous les champs.
• Dans le bouton Accepter, vérifiez que tous les champs contiennent des informations.
41
Cahier d'exercices
x = vo*cos(a)*t
y = vo*sin(a)*t - 0.5*g*t**2
Événements et liaison
Les applications tkinter se trouvent dans une boucle, la mainloop et les événements sont des événements.
qui se communiquent et qui ont des origines différentes : appuyer sur la souris, changer la taille de
un widget, appuyer sur des touches, etc. (beaucoup d'événements sont produits par l'utilisateur). Python
enregistre l'événement et nous permet de le lier à un widget et d'exécuter une fonction pour répondre à
dite événement. Pour lier l'événement :
[Link](evénement, gestionnaire)
Si l'événement indiqué est enregistré dans le widget, cela déclenche un appel au gestionnaire et donc à
la fonction indiquée.
Algunos Eventos
• <Button-1> Un bouton est enfoncé avec la souris, le button-1, c'est le bouton de gauche.
le button-2 est celui du milieu (s'il est disponible) et le button-3 est le bouton de droite.
42
Cahier d'exercices
L'objet événement
C'est un objet standard de Python qui a des attributs décrivant l'événement qui s'est produit.
produit. Certains attributs de l'événement sont :
Chaque fois que l'utilisateur cliquera sur l'image, la couleur de fond de la fenêtre changera.
creará una lista con colores aleatorios, cada vez que el usuario haga clic se escogerá el siguiente
couleur. Le code que nous devons inclure est :
def CambiaColores(event):
colores=["azure","cadet blue","medium sea
green","goldenrod","salmon","maroon","PeachPuff3","SteelBlue3"]
colorM=len(colores)
couleurN globale
si colorN==colorM-1:
colorN=0
sinon :
colorN+=1
[Link](bg=colores[colorN])
43