TP9 - Boucle while ¶
Activité¶
A l'aide d'une boucle for, définir une fonction position(x, lst) qui retourne la position (indice) de l'élément x dans la liste lst.
# définition avec une boucle for
# test
lst = [2, 5, 3, 1, 18, 23, 6, 13, 12, 15, 7, 10]
position(5, lst)
Que peut-on reprocher à cette définition ?
On peut l'améliorer grâce à une boucle while.
Compléter la définition suivante.
# définition avec une boucle while
def position2(x, lst):
trouve = False
i = 0
while ###:
if ###:
trouve = True
else:
###
return ###
# test
lst = [2, 5, 3, 1, 18, 23, 6, 13, 12, 15, 7, 10]
position2(5, lst)
Que se passe-t-il avec l'appel suivant ?
position2(8, lst)
Définir une fonction position3(x, lst) qui corrige ce défaut.
# définition
# test
position3(8, lst)
Jeu des 30 points¶
Présentation¶
À tour de rôle, les joueurs lancent deux dés.
S’ils n’obtiennent aucun double, ils ne marquent pas de points.
En revanche, si leurs dés affichent des doubles, voici comment calculer leur score :
- Un double 1, 2, 4, 5 rapporte 5 points
- Un double 6 rapporte 25 points
- Un double 3 ramène leur score à 0
Le premier joueur à atteindre 30 points gagne la partie.
Grâce au TP8, vous pouvez déjà jouer avec votre voisin, mais à chaque tour il faut exécuter la fonction et compter les points...
Copier/coller, puis exécuter le code du TP8 pour cela.
# Réponse
Automatisation d'une partie avec la boucle while.¶
Définir une fonction jeu30points() qui permet de jouer avec son voisin, simplement en cliquant sur la fenêtre graphique à chaque tour.
![]()
# def jeu30points()
# test
jeu30points()