0% ont trouvé ce document utile (0 vote)
468 vues6 pages

tousTP-python 2pp

Ce document décrit comment utiliser le langage de programmation Python sur Mac et Windows. Il présente les bases de l'interpréteur interactif Python, la création et l'exécution de scripts Python, et quelques exemples de scripts illustrant des concepts comme les types de données et les structures conditionnelles.

Transféré par

Elora ADJANFELE
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)
468 vues6 pages

tousTP-python 2pp

Ce document décrit comment utiliser le langage de programmation Python sur Mac et Windows. Il présente les bases de l'interpréteur interactif Python, la création et l'exécution de scripts Python, et quelques exemples de scripts illustrant des concepts comme les types de données et les structures conditionnelles.

Transféré par

Elora ADJANFELE
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

TP1a – Langage Python (Mac) TP1a – Langage Python (Windows)

I- Manipulations dans le mode interactif I- Manipulations dans le mode interactif


L'interpréteur peut être lancé directement depuis la ligne de commande dans un terminal, L'interpréteur est lancé par l’item correspondant ajouté dans le menu Démarrer à l’issu de
il suffit de taper la commande "python" (la commande ctrl d quitte l’interpréteur) l’installation obtenus sur http://python.org : Python (commande line)
Par exemple : Par exemple :
imac-de-bibi:~ bibi$ python
Python 2.6 (trunk:66714:66715M, Oct 1 2008, 18:36:04)
[GCC 4.0.1 (Apple Computer, Inc. build 5370)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 3 + 4
7
>>> print 3
3
>>> print 5 * 5
25
>>> 20 / 3
6
>>>

Faites quelques essais avant de poursuivre.

II- Edition, interprétation et exécution d’un script


a) Edition : écrire le script suivant :
#! /usr/bin/python # pour indiquer ou se trouve l’interpréteur Faites quelques essais avant de poursuivre.
# -*- coding: UTF-8 -*- # pour spécifier le codage des caractères
II- Edition, interprétation et exécution d’un script
# pour afficher un message et/ou le contenu d’une variable, utilisez : print
# pour effectuer une saisie au clavier, utilisez : raw_input(“message”) a) Trouver le chemin de l’exécutable Python
print 5 # affichage de la valeur 5 Le chemin de l’exécutable Python est nécessaire pour que le script puisse désigner l’interpréteur
qui est capable de l’exécuter.
a = 5
print a # affichage du contenu de a
print “a = ”, a # affichage d’un message et du contenu de a

b = 5.50
print “a = ”, a, “ b = ”, b # affichage d’un message, du contenu de a et de b sur la même ligne

c = 5,50
nom = raw_input(“Quel est votre nom : ”)

print “type de a : ”, type(a)


print “type de b : ”, type(b)
print “type de c : ”, type(c)
print “type de nom : ”, type(nom)

b) Interprétation et exécution : lancer un terminal


1. faire un chmod 755 affichage.py afin de donner les droits d’exécution sur le fichier Selon vos droits d’installation, vous n’aurez peut-être pas pu l’installer dans un dossier commun,
mais seulement dans vos documents (contrairement à la copie d’écran précédente).
2. ./affichage.py pour exécuter le script
b) Edition : écrire le script suivant (dans NotePad++ ou l’ « IDLE » – Python GUI) :
3. corriger les éventuelles erreurs #! C:\"Documents and Settings"\[nom du compte]\Bureau\Python27\python # où est l’interpréteur
# -*- coding: UTF-8 -*- # pour spécifier le codage des caractères
c) Exercice : écriture d’un script
# pour afficher un message et/ou le contenu d’une variable, utilisez : print
Problème : Une machine découpe dans une plaque, des disques circulaires de rayon rExt, percés d’un trou circulaire de # pour effectuer une saisie au clavier, utilisez : raw_input(“message”)
rayon rInt avec rInt < rExt et ne débordant pas du disque. Quelle est la surface d’un disque découpé ?
print 5 # affichage de la valeur 5
Guide :
1. trouver les données a = 5
print a # affichage du contenu de a
2. effectuer les calculs print “a = ”, a # affichage d’un message et du contenu de a
3. afficher le résultat
b = 5.50
print “a = ”, a, “ b = ”, b # affichage d’un message, du contenu de a et de b sur la même ligne

TP Python 1 TP Python 2
c = 5,50
nom = raw_input(“Quel est votre nom : ”)
TP1b – Langage Python
print “type de a : ”, type(a)
print “type de b : ”, type(b) Rappel: guide à suivre pour l’écriture d’un script : 1/ trouver les données
print “type de c : ”, type(c)
print “type de nom : ”, type(nom) 2/ effectuer les calculs
III- Les actions conditionnelles 3/ afficher le résultat
Remarque : une fois sauvé avec la bonne extension, le script s’exécute quand on clique sur son icône. Script 1 : écrire un script min_max.py qui demande de
Pour éviter tout problème d’encodage, il suffit d’éviter d’utilise les caractères accentués ou spéciaux. saisir 2 valeurs et qui affiche la plus petite
des 2 valeurs.
b) Interprétation et exécution : lancer l’accessoire « invite de commandes »
Script 2 : écrire un script longeur_chaine.py qui demande de saisir 2 chaînes de caractères
1. se placer dans le dossier qui contient le fichier de script (par exemple en tapant
et qui affiche la plus grande des 2 chaînes.
C:\"Documents and Settings"\[nom du compte]\Bureau\...)
2. .\affichage.py pour exécuter le script Script 3 : écrire le script fumeurs.py de la page 9 en le complétant par des saisies.
3. corriger les éventuelles erreurs Script 4 : écrire le script convertir.py qui effectue une conversion euros ! dollars.
a) Le programme commencera par demander à l'utilisateur d'indiquer
par un caractère 'E' ou '$' la devise du montant qu'il va entrer.
b) Puis le programme exécutera une action conditionnelle de la forme :
if devise == 'E' :
.........
elif devise == '$' :
..........
else :
.......... # affichage d'un message d'erreur
Script 5 : écrire le script suivant points_cardinaux.py qui affiche la position géographique (nord, nord-
est, nord-ouest, sud, sud-est, sud-ouest,...) d'une personne se trouvant en un point x,y sur une surface
plane. La position est déterminée par rapport au point origine x=0, y=0. Le programme demandera à
l'utilisateur d'entrer au clavier les valeurs de x et y, puis affichera la situation.

IV- Les actions itératives


Script 6 : écrire un script qui demande de saisir 2 valeurs et qui affiche la plus petite des 2 valeurs
Script 7 : écrire un script qui demande de saisir 2 chaînes de caractères et qui affiche la plus la plus grande
chaîne
Script 3 : écrire le script de la page 9 en le complétant par des saisies.
Script 4 : dessiner avec le module turtle
#! /usr/bin/python # pour indiquer ou se trouve l’interpréteur
# -*- coding :utf-8 -*- # pour spécifier le codage des caractères
from turtle import *

a = 0
while a < 12 :
a = a + 1
forward(150)
left(150)
raw_input(“Pressez ENTRER pour quitter”)
# obligatoire, sinon le programme quitte immédiatement à la fin de la boucle
c) Exercice : écriture d’un script
#! /usr/bin/python # pour indiquer ou se trouve l’interpréteur
Problème : Une machine découpe dans une plaque, des disques circulaires de rayon rExt, percés d’un trou circulaire de # -*- coding :utf-8 -*- # pour spécifier le codage des caractères
from turtle import *
rayon rInt avec rInt < rExt et ne débordant pas du disque. Quelle est la surface d’un disque découpé ?
Guide : angle = 5
distance = 5
1. trouver les données compteur = 0
2. effectuer les calculs
while compteur <= 72 :
3. afficher le résultat forward(distance)
left(angle)
compteur +=1
raw_input(“Pressez ENTRER pour quitter”)

TP Python 3 TP Python 4
TP2a – Langage Python TP2b – Langage Python
I- Algorithmique : listes et parcours
I- Les actions itératives D’après les algorithmes décrits dans le diaporama,
Script 1 : dessiner avec le module turtle. Saisir les deux petits programmes et les exécuter. Script 7, 8 et 9 : écrire plusieurs scripts autour d’un « jeu » de devinette :
#! /usr/bin/python # pour indiquer ou se trouve l’interpréteur Le jeu est initialisé avec 10 valeurs, et l’utilisateur du jeu doit proposer une valeur. Si la valeur est dans la liste,
# -*- coding :utf-8 -*- # pour spécifier le codage des caractères
il a gagné, sinon il a perdu. Ainsi, ces scripts doivent :
from turtle import * • initialiser une liste de 10 valeurs entières (ces valeurs doivent être définies dans le script, et non pas de
saisies par le joueur au clavier : ce sont les « valeurs mystère »),
a = 0
• demander au joueur d’entrer (=de saisir au clavier) une valeur à y rechercher,
while a < 12 :
a = a + 1 • et mette en œuvre un des algorithmes de recherche suivant :
forward(150)
left(150) Script 7 : recherche séquentielle dans une liste non triée
où le programme
raw_input(“Pressez entrée pour quitter”) • parcourt la liste des valeurs en les comparant une à une à la valeur cherchée,
# obligatoire, sinon le programme quitte immédiatement à la fin de la boucle
et sort de la boucle
soit quand il a parcouru toute la liste sans trouver la valeur,
soit quand la valeur a été trouvée ;
#! /usr/bin/python # pour indiquer ou se trouve l’interpréteur • et enfin annonce au joueur s’il a perdu ou gagné
# -*- coding :utf-8 -*- # pour spécifier le codage des caractères selon que toute la liste a été parcourue ou que la valeur a effectivement été trouvée.
from turtle import *
Script 8 : recherche séquentielle dans une liste non triée « bornée »
angle = 5 où, après avoir compté le nombre de valeurs de la liste (n), le programme
distance = 5 • ajoute la valeur cherchée en valeur supplémentaire
compteur = 0 (la dernière valeur était la n-1ième, cette dernière valeur est la nième ; si la valeur était déjà
dans la liste, elle y est alors 2 fois),
while compteur <= 72 :
forward(distance) • parcourt la liste des valeurs en les comparant une à une à la valeur cherchée,
left(angle) et sort de la boucle quand la valeur a été trouvée
compteur +=1 • et enfin annonce au joueur s’il a perdu ou gagné
selon que la valeur a effectivement été trouvée une fois toute la liste a été parcourue ou non.
raw_input(“Pressez entrée pour quitter”) Remarque : cet algorithme permet de n’avoir qu’une seule condition de sortie à la boucle, portant
sur le fait d’avoir trouvée la valeur cherchée. La réussite ou l’échec se repère par le fait que la
valeur trouvée est la dernière ajoutée ou pas.
Script 2 : Ecrire un programme qui trace 1 carré. Script 9 : recherche séquentielle dans une liste triée
Script 3 : Ecrire un programme qui trace 1 triangle équilatéral (3 angles de 60°). où, après avoir triées les valeurs de la liste, le programme
• parcourt la liste des valeurs en les comparant une à une à la valeur cherchée,
Script 4 : Ecrire un programme qui trace 1 hexagone (polygone à 6 cotés) et sort de la boucle quand la valeur courante de la liste est supérieure à la valeur cherchée
Script 5 : Ecrire un programme qui trace 1 carré, puis un triangle. Modifiez ensuite votre programme pour (la valeur cherchée a été dépassée puisque la valeur courante de la liste est plus grande que
dessiner n figures consécutives adjacentes, la valeur de n sera initialisée par une saisie au clavier. la valeur cherchée)
• et enfin annonce au joueur s’il a perdu ou gagné
selon que la valeur a été dépassée ou non.

Améliorer ces scripts pour qu’ils donnent une nouvelle chance au joueur (càd qu’ils lui proposent de saisir une
nouvelle valeur) jusqu’à ce qu’il ait gagné ou qu’il abandonne en tapant la valeur 0.
Script 6 : idem script 5 mais avec l’effet suivant :

II- Tris classiques (par insertion, à bulles)


Script 10 : trier une liste au fur et à mesure (= « tri par insertion »)
Ecrire un script qui
• demande à l’utilisateur de saisir des valeurs une à une (la valeur 0 étant la valeur à saisir pour quitter),
• et insère cette valeur à « sa » place dans la liste des valeurs déjà entrées.

TP Python 1 TP Python 2
Script 11 : trier une liste par « tri à bulle »
Ecrire un script qui
• demande à l’utilisateur de saisir une liste de valeurs et met les valeurs saisies dans un tableau
TP3a – Langage Python
• puis, affiche la liste des valeurs du tableau
• parcourt la liste des valeurs à partir de la dernière valeur, en échangeant les valeurs 2 à 2 si la valeur
précédant la valeur courante est plus grande que la valeur courante
Essayer le script obtenu sur plusieurs listes de valeurs pour vérifier que la plus petite de toutes les valeurs saisies I- Les fonctions
se retrouve ainsi « poussée » à la première place dans la liste. Modifier le script pour
• recommencer ce traitement sur les valeurs restantes (après cette plus petite valeur) Script 1 : Ecrire une fonction de nom dessineFigure(...) qui prend en paramètre : le nombre de côtés,
Essayer à nouveau le script obtenu sur plusieurs listes de valeurs pour vérifier que les deux plus petites de toutes
la largeur du côté, la couleur du trait et l’épaisseur du trait. C’est le nombre de cotés qui déterminera
les valeurs saisies se retrouvent ainsi « poussées » aux deux premières places dans la liste. Modifier le script pour la figure qui sera tracée (droite, triangle, carre, ...)
• réitérer ce traitement sur les sous-listes, de plus en plus courtes, des valeurs restantes, jusqu’à ce que la Exemple de l’appel de la fonction : dessineFigure(4, 100, “red”, 1)
sous-liste soit trop courte (càd ne contienne plus qu’une seule valeur).
Script 2 : Ecrire une fonction de nom dessineEtoile(...) qui prend en paramètre : le nombre de coté,
Script 12 : instructions « for » et « while » la largeur du coté, la couleur du trait et l’épaisseur du trait. Un test sera effectué sur le nombre de coté
Dans le script suivant, modifier les boucles « for » en boucles « while ». Expliquez ce que fait cet algorithme et afin de déterminer un nombre minimum de coté permettant de dessiner une étoile.
déroulez-le « à la main » sur l’exemple : [3, 2, 1, 9, 8]. Exemple de l’appel de la fonction : dessineEtoile(8, 100, “red”, 1)

#!/usr/bin/python Script 3 : Il s’agit ici de transformer un script en définissant une fonction et en l’appelant. Le script en
# -*- coding: UTF-8 -*- question est le script du TD précédent qui permet d’insérer 1 valeur dans une liste triée. La fonction à
définir sera insertTriCroissant(l,v), qui insert la valeur v dans la liste l (qui est supposée triée
__version__ = (0, 0, 1) dans l’ordre croissant) sans en perturber l’ordre.
__build__ = (0, 0) #!/usr/bin/python n = int(raw_input("Entrez une nouvelle valeur à y insérer : "))
__date__ = (2010, 11, 26) # -*- coding: UTF-8 -*-
__author__ = ('Tiprof', '') # recherche de la première valeur plus grande
print "*******************************************" i=0
def Swap(l,i,j): print "Insersion d'une valeur dans une liste triée" while(i<len(liste) and liste[i]<n): i +=1
""" Created: 2005.11.08 - Updated: print "*******************************************"
echange 2 valeurs d'une liste """ # quand on sort de la boucle,
t=l[i] liste = [5,8,12,4,7] # soit i<len(liste) est faux,
l[i]=l[j] for i in liste : # soit liste[i]<n est faux
l[j]=t print i if (i<len(liste)): # pour que cette condition soit vraie,
# il faut qu'on soit sorti de la boucle
print("Entrez une liste de valeurs (0 pour quitter): ") liste.sort() # en dépassant la valeur à insérer
liste = [] print "\nAffichage de la liste une fois triée : " liste.insert(i, n) # insersion de la valeur à cette position
n = int(raw_input("? ")) for i in liste : else: # sinon on est dans la situation
while (n != 0): print i # où toutes les valeurs de la liste sont ! n
liste.append(n) liste.append(n) # insersion de la valeur au bout de la liste
n = int(raw_input("? "))
print "\nAffichage de la liste après l'insersion : "
for i in liste :
print "len(liste)="+str(len(liste))
print i
for i in range(len(liste)):
for j in range(len(liste)-1,i, -1):
Le programme principal qui doit appeler cette nouvelle fonction doit préalablement : initialiser en ligne à
if liste[j-1]>liste[j]:
Swap(liste,j,j-1)
"vide" , demander à l’utilisateur de rentrer 3 valeurs , les insérer une à une dans la liste avec cette
print "i="+str(i)+" ; j="+str(j)+" => "+str(liste[j])+" <-> "+str(liste[j-1]) fonction, et finir par afficher la liste obtenue.
Script 4 : il s’agit de modifier les scripts du tri à bulle du TD précédent (récupérable sur le site de cours "
print("La liste de valeurs obtenue est : ") echanges-prog-1passage.py" - http://tiprof.fr/AlgProg-Python/exemples/listes/insersion_triee_1val.py et
for i in liste: "echanges-prog-repetepassages.py" - http://tiprof.fr/AlgProg-Python/exemples/listes/echanges-prog-
print i repetepassages.py) de façon à définir et appeler les deux fonctions :
- trie_bulle (l) où l est a liste à trier en faisant des passages sur de moins en moins déléments
a = raw_input() #attendre
- bulle(l, n) où l est la liste à trier et n l’indice de son dernier élément sur lequel « passer » en faisant
remonter les bulles

II- Les modules


Script 5 : Ecrire le module mDessin.py comportant ces deux fonctions et les utiliser dans un programme
principal (voir page 7 du fascicule sur les fichiers).

TP Python 3 TP Python 1
TP3b – Langage Python TP4 – Langage Python
Les sous-programmes (fonctions et procédures)
Pour tous les exercices vous définirez les différentes fonctions demandées dans un module de nom mDivers.py et
III- Les fichiers vous écrirez votre programme principal dans un autre fichier.
Script 6 : Ecrire dans un fichier mHtml.py , les fonctions décrites ci-dessous : Script 1 : légende
ancre(adr_http, texte) Une légende de l'Inde ancienne raconte que le jeu d'échecs a été inventé par un vieux sage, que son roi voulut
# retourne une chaine : "<a href='http://www.oreilly.fr'>éditions O'Reilly</a>" remercier en lui affirmant qu'il lui accorderait n'importe quel cadeau en récompense. Le vieux sage demanda qu'on lui
fournisse simplement un peu de riz pour ses vieux jours, et plus précisément un nombre de grains de riz suffisant pour
messagerie(email,texte) que l'on puisse en déposer 1 seul sur la première case du jeu, deux sur la suivante, quatre sur la troisième, et ainsi de
# retourne une chaîne comme : "<a href='mailto :toto.free.fr'>Contact</a>" suite jusqu'à la 64e case.

entete(titre) : # retourne une chaîne : "<html>" ... "</head><body><h1>titre</h1>" Écrivez un script qui affiche le nombre de grains à déposer sur chacune des 64 cases du jeu ainsi que le poids du tas de
sable. Calculez le nombre exact de grains (nombre entier) par case et pour chaque case le poids des grains déposés en
corps(texte) # retourne une chaîne : '<div id="centre">bla bla…</div>' sachant qu’un grain pèse 0.000036274 gr

pied() # retourne la chaîne : "</body></html>" Vous définirez une fonction de nom poids(nb,p) qui retournent le produit de nb * p avec nb pour le nombre de
grains et p le poids d’un grain.
ecrireHtml(fichier,texte) # écriture d’un fichier contenant du texte html
exemple d’affichage => Case : 16 Nombre de grains : 32768 Poids : 1.188626432 gr

de sorte que le script test_mHtml.py : Génére, dans le fichier test_mHtml.html, le texte : Script 2 : minimum et maximum
Ecrire un script mini_maxi.py qui effectue une saisie de n entiers et qui affiche la plus petite et la plus grande des
#! /usr/bin/python <html>
valeurs. Vous définirez trois fonctions, saisie(nb)qui effectue la saisie des n entiers dans une liste et qui retourne
# -*- coding: UTF-8 -*- <head>
cette liste, min(a,b) et max(a,b) qui retournent respectivement la valeur mini et la valeur maxi des deux
<title>Chez Tiprof</title>
nombres entiers a et b, passés en paramètre.
from mHtml import * </head>
<body> Ensuite, vous ferez un appel à la fonction de saisie et un appel aux fonctions min(..) et max(...) afin de
e = entete("Chez Tiprof") <h1>Chez Tiprof</h1> déterminer et d’afficher la plus petite et la plus grande valeur.

r = "\n" <div id="centre">


t = "Bienvenue chez " Script 3 : pair et impair
t += ancre("tiprof.fr","Tiprof") + r Bienvenue chez <a href=http://www.tiprof.fr>Tiprof</a> Ecrire un script pair_impair.py qui effectue une saisie de n entiers et qui affiche respectivement sur deux lignes,
t += "Il était une fois..." + r Il était une fois... les nombres pairs et les nombres impairs .
t += "Pour plus d'informations, " Pour plus d'informations, <a href=mailto:contactez-
t += messagerie("contactez-moi","tiprof.fr") + r moi>tiprof.fr</a> Vous définirez :
- une fonction estPair(a)qui retourne vrai si le nombre entier a passé en paramètre est pair, faux sinon.
- une fonction affiche(liste) qui affiche la liste d’entiers passée en paramètre.
c = corps(t) </div><!-- fin id="centre" -->
Ensuite, vous utiliserez la fonction de saisie définie au script 3 pour saisir les n valeurs et vous ferez un appel à la
p = pied() </body> fonction pair(a) afin de ranger dans la bonne liste les éléments pairs et impairs. Enfin vous ferez un appel à la
</html> fonction affiche(liste) afin de voir le contenu de chaque liste.
text = e + c + p
Script 4 : lecture et écriture dans un fichier
ecrireHtml("test_mHtml.html",text)
Ecrire un script qui lit un fichier ligne par ligne (readline() ) et qui écrit dans un autre fichier, toute les lignes dont
le premier caractère est différent de ‘# ‘.
Vous définirez une fonction de nom filtre(car,source,destination)
Script 7 : Ecrire un programme (en créant des fonctions) qui lit un fichier html et qui affiche son contenu. - car : caractère à rechercher dans le fichier source
Pour cela, vous utiliserez les fonctions de manipulation des fichiers (ouverture d’un fichier en lecture, - source : le fichier à lire
lecture d’une suite de caractères consécutifs, ou transfert de toutes les lignes d’un fichier dans un table - destination : le fichier à écrire
puis extraction des lignes une à une … voir le « mémo » des fonctions)
et une fonction de nom executeCde(cde,chaine) qui affiche utilisant la commande more du shell le contenu d’un
IV- L’OS (communication avec le système de l’ordinateur) fichier passé en paramètre.

Script 8 : Ecrire un programme (en créant des fonctions) de nom contenu_rep.py qui lit le contenu d’un PS : readline()lit une seule ligne à la fois et retourne une chaîne de caractères. Cette chaîne est vide en fin de
répertoire rep passé en paramètre et qui met dans une liste, tous les noms de fichiers ou de répertoires se fichier.
trouvant dans rep. Vous afficherez 2 fois ce contenu en utilisant 2 boucles for différentes.

TP Python 2 TP utilisateur Unix 1


Script 5 : Tirage au hasard de nombres entiers Ecrire un script de nom droites.py qui a pour interface graphique une fenêtre avec 3 boutons.
Savoir utiliser la fonction randrange() du module random. Cette fonction peut être utilisée avec 1, 2 ou 3 Les actions possibles sont :
- le bouton « Tracer une ligne » trace une droite à chaque clic sur ce bouton
arguments. Avec un seul argument, elle renvoie un entier compris entre zéro et la valeur de l'argument diminué d'une
- le bouton « Autre couleur» permet de changer la couleur de la droite (liste de couleurs)
unité. Par exemple, randrange(6) renvoie un nombre compris entre 0 et 5.
- le bouton « Quitter» quitte en fermant la fenêtre
Avec deux arguments, le nombre renvoyé est compris entre la valeur du premier argument et la valeur du second
argument diminué d'une unité. Par exemple, randrange(2,8) renvoie un nombre compris entre 2 et 7.

Si l'on ajoute un troisième argument, celui-ci indique que le nombre tiré au hasard doit faire partie d'une série limitée
d'entiers, séparés les uns des autres par un certain intervalle, défini lui-même par ce troisième argument.
Par exemple, randrange(3,13,3) renverra un des nombres de la série 3, 6, 9, 12 :

for i in range(15):
print random.randrange(3,13,3) # affiche : 3 12 6 9 6 6 12 6 3 6 9 3 6 12 12

Ecrire un script de nom jeuCarte.py qui tire au hasard des cartes à jouer. Le nom de la carte tirée sera affiché
par son nom.

Le programme affichera par exemple :

Frappez <Enter> pour tirer une carte : Dix de Trèfle


Frappez <Enter> pour tirer une carte : As de Carreau
Frappez <Enter> pour tirer une carte : ...
Script 6 : Lecture du contenu d’un répertoire et écriture de ce contenu sous la forme d’ancres dans une liste, puis
dans un fichier html. Ouvrir le fichier lect-dossier-ecrit-liens.py et le compléter. Cet exercice a été fait
partiellement en cours le 04/12.
Script 7 : Tracé d’une spirale avec le module Turtle
Ecrire un script spirale.py qui dessine une spirale. Pour cela vous définirez un sous-programme de nom
deplace(x,y), x et y sont deux paramètres correspondants à un déplacement.

Ensuite, vous utiliserez 2 boucles for imbriquées et un appel à la fonction deplace(..,..).


A l’exécution du programme, vous devez obtenir le dessin d’une spirale.
Script 8 : Le module Tkinter : exemple
Ce module permet de créer des interfaces graphiques à l’aide composants appelés widgets. Voici un exemple
d’utilisation simple. Le but de cet exemple est de tracer une droite dans une fenêtre.

from Tkinter import *

def traceDroite():
"Tracé d'une ligne dans le canevas can"
# coordonnées de la ligne
c.create_line(10,190,190,10,width=2,fill="dark green")

#------ Programme principal -------


# Création de la fenetre :
fen = Tk()

# création des widgets (composants) :


c = Canvas(fen,bg='dark grey',height=200,width=200)
c.pack(side=LEFT)

btn1 = Button(fen,text='Quitter',command=fen.quit)
btn1.pack(side=BOTTOM)

btn2 = Button(fen,text='Tracer une ligne',command=traceDroite)


btn2.pack()

fen.mainloop() # boucle en attente d'événements


fen.destroy() # destruction (fermeture) de la fenêtre

TP utilisateur Unix 2 TP utilisateur Unix 3

Vous aimerez peut-être aussi