Informatique TP 1
PYTHON ET MOI
je veux maîtriser Python avec les mains
1 Un premier exemple de programme
Voici un programme écrit en langage Python :
# On charge, dans un premier temps, les bibliothèques dont on
va avoir besoin
# chargement des fonctions seed et randint du module random
from random import seed,randint
# le jeu du plus-moins
""" Mise en oeuvre du jeu du plus-moins
L’utilisateur doit deviner le nombre entre 1 et 100 choisi par
l’ordinateur """
seed() # initialisation du générateur pseudo-aléatoire
inconnue=randint(1,100)
# Début du jeu
b=int(input("Devinez le nombre entre 1 et 100 choisi \n"))
# Le jeu se poursuit tant que le nombre n’est pas trouvé
while b != inconnue :
if b < inconnue :
b=int(input("Pas de chance ! Le nombre à trouver est plus
grand ...\n Choisissez un nombre plus grand : "))
else :
b=int(input("Pas de chance ! Le nombre à trouver est plus
petit ...\n Choisissez un nombre plus petit : "))
# Lorsque le bon nombre est trouvé, c’est gagné !
print("Bingo ! Le nombre à deviner était bien ",inconnue)
,A vous de jouer !
Pour saisir ce programme
1. Lancer IDLE.
2. Ouvrir une nouvelle fenêtre : File New Window
3. Taper le programme précédent.
Pour sauvegarder ce programme
Le nom du fichier doit se terminer par l’extension .py
Pour exécuter ce programme
Depuis la fenêtre dans laquelle se trouve le programme : Run Run Module
Remarque :
La mise en forme de ce programme avec IDLE possède quelques caractéristiques
notables
1. Sur certaines lignes apparaissent des explications précédées de #: il s’agit de
commentaires, qui ne sont pas interprétés par la machine au moment de l’exé-
cution du programme, et qui servent à indiquer à la personne qui lit le code à
quoi sert telle ou telle instruction.
La chaîne de caractères :
""" Mise en oeuvre du jeu du plus-moins L’utilisateur doit deviner
le nombre entre 1 et 100 choisi par l’ordinateur """
joue également ce rôle.
Un programme écrit en Python peut manquer de clarté sous sa forme
"brute" : il ne faudra donc pas hésiter à écrire de nombreux commen-
taires, qui permettront d’y voir plus clair dans le rôle des lignes du code.
2. A l’issue de certaines instructions telles que while b != inconnue : ou
if b < inconnue : , lors du retour à la ligne, un alinéa est automatiquement
inséré avant la saisie du code de la ligne suivante.
On parle alors d’indentation.
On peut voir cet aspect de mise en forme comme une aide pour mieux structu-
rer les instructions : par exemple, on voit clairement où se termine l’instruction
conditionnelle if.
En Python, cet alinéa prend une importance qui va au-delà de la "simple" mise
en forme : l’oubli d’une indentation peut engendrer des messages d’erreur. On
dit que l’indentation est signifiante.
Et si on apportait des modifications ?
1. Modifier le programme précédent pour que, lorsque le joueur propose un
nombre ntel que |ninconnue| ≤ 5, on lui précise qu’il est proche de
inconnue, tandis que, si |ninconnue| ≥ 25, on lui indique qu’il en est
loin.
2. Modifier le programme précédent pour qu’il affiche, en fin de partie, le
nombre de coups joués.
Voici à présent le code permettant de déclarer une fonction, dont les instructions
reprennent en grande partie celles du programme précédent.
# chargement des fonctions seed et randint du module random
from random import seed,randint
# chargement de la fonction time permettant de mesurer le temps
from time import time
def jeu(n) :
"""L’utilisateur propose un entier n, puis doit deviner le
nombre entre 1 et n choisi par l’ordinateur ;
la fonction retournera alors la durée de la partie."""
seed() # initialisation du générateur pseudo-aléatoire
inconnue=randint(1,n)
# On relève l’instant de début de partie
debut=time()
# Début du jeu
b=int(input("Devinez le nombre entre 1 et l’entier que vous
avez proposé \n ")
# Le jeu se poursuit tant que le nombre n’est pas trouvé
while b != inconnue :
if b < inconnue :
b=int(input("Pas de chance ! Le nombre à trouver est
plus grand ...\n Choisissez un nombre plus grand : "))
else :
b=int(input("Pas de chance ! Le nombre à trouver est
plus petit ...\n Choisissez un nombre plus petit : "))
# Lorsque le bon nombre est trouvé, c’est gagné !
print("Bingo ! Le nombre à deviner était bien ",inconnue)
# On relève l’instant de fin de partie
fin=time()
# La fonction retourne alors la durée de la partie
return fin-debut
,Comment utiliser cette fonction ?
Une fois cette fonction écrite dans le shell d’IDLE, il suffit d’exécuter la
commande jeu(n), où nest un entier que l’on choisira.
Remarques :
1. Si les instructions sont, en grande partie, les mêmes que dans le précédent pro-
gramme, la mise en forme est différente : on propose ici une fonction, qui retourne
un résultat (la durée du jeu).
On remarque que les instructions qui suivent la première ligne – qui permet de
définir la fonction jeu – sont toutes indentées.
2. Comme lors de l’écriture d’un programme, des commentaires peuvent figurer au
niveau de chaque ligne où on l’estime utile.
Ici, la première ligne de commentaire, qui apparaît après la décla-
ration de la fonction def jeu(n) : joue un rôle remarquable. En
effet, le texte qui y figure est écrit à l’utilisateur lorsqu’il demande
l’aide à propos de la fonction jeu,via la commande help(jeu).
2 Quelques petites fonctions autour de la moyenne
1. Ecrire une fonction moyenne1 ayant pour paramètre trois réels x,yet zdonnés,
et retournant la moyenne arithmétique de ces trois réels.
2. Ecrire une fonction moyenne2 ayant pour paramètre une liste Lcontenant des
réels, et retournant la moyenne arithmétique des réels figurant dans cette liste.
Pour cela, on n’oubliera pas que les éléments d’une liste Lde longueur nsont
nommés L[0],L[1], ..., L[n-1].
En outre, la syntaxe for iin range(n) : pourra être utile.
3. On cherche à calculer la moyenne d’une liste de réels, chacun devant être pon-
déré par un coefficient donné. Pour cela, on regroupe les réels dans une liste
Let les coefficients dans une liste C, les listes Let Cayant le même nombre
d’éléments.
Ecrire une fonction moyenne3 ayant pour paramètres deux listes Let Cde même
longueur contenant des réels (ceux de Cétant tous strictement positifs), et re-
tournant la moyenne arithmétique des réels figurant dans la liste Lpondérés par
les coefficients de la liste C, comme indiqué précédemment.
3 Et pour quelques dollars de plus...
1. Modifier le premier programme pour qu’il affiche, en fin de partie, la durée
moyenne d’un coup du joueur.
2. Modifier le premier programme pour qu’il affiche, en fin de partie, la liste des
nombres proposés par le joueur.
On pourra commencer par regarder les effets, sur la variable L, de la succession
d’instructions : L=[],L=L+[3.0],L=L+[-7]...
3. Modifier le programme précédent pour qu’il affiche, en fin de partie, la moyenne
des nombres proposés par le joueur.
Et pour les plus rapides...
Ecrire une fonction ayant pour paramètre un nombre entier entre 1 et 100, pro-
grammant la recherche de ce nombre par l’ordinateur, et retournant le nombre de
coups joués par l’ordinateur pour trouver le nombre.
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !