Boujour,

Je débute dans le langage Python.
Je me suis acheté un livre pour les nuls pour commencer et le code final indiqué pour faire le jeu pour diviner un chiffre pose problème.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
""" Projet 5 JeuDevin.py Version 4 (finale) """
 
 
import random
 
INVITE = 'Propose un nombre : '
 
# NOUVELLES CONSTANTES
QUITTER = -1
QUIT_TXT = 'q'
QUIT_MSG = 'Merci pour tout !'
QUIT_CONFIRMER = "Es-tu certain de vouloir quitter (O/n) ?"
 
# NOUVELLE FONCTION POUR CONFIRMER QU'ON VEUT QUITTET
def confirmer_quitter():
    """ On sort seulement si saisie de la
    lettre n minuscule par renvoi de False. """
    confi = raw_input(QUIT_CONFIRMER)
    if confi == 'n':
        return False
    else:
        return True
 
def jouer_tour():
    """ Choix d'un nombre, demande au joueur
    de le trouver et reboucle tant qu'il ne l'a pas. """
    nbr_secret = random.randint(1,100)
    nbr_saisies = 0
    while True:
        nbr_joueur = raw_input(INVITE)
        # AJOUT BLOC IF POUR SORTIR CONFIRMEE
        if nbr_joueur == QUIT_TXT:                          # AJOUT
            if confirmer_quitter():                         # AJOUT
                return QUITTER                              # AJOUT
            else:                                           # AJOUT
                continue # TOUR DE BOUCLE QUIVANT           # AJOUT
        nbr_saisies = nbr_saisies + 1                       # AJOUT
        if nbr_secret == int(nbr_joueur):
            print('Correct !')
            return nbr_saisies
        elif nbr_secret > int(nbr_joueur):
            print('Trop petit !')
        else:
            print('Trop grand !')
 
### SECTION PRINCIPALE MAIN
total_tours     = 0
total_saisies   = 0
msg_stat = 0                                                 # AJOUT
 
while True:
    total_tours = total_tours + 1
    print("On passe au tour " +str(total_tours))
    print("En avant pour les devinettes !")
 
    ce_tour = jouer_tour()
 
# AJOUT BLOC IF POUR TESTER SI QUITTER
if ce_tour == QUITTER:                                      # AJOUT
    total_tours = total_tours - 1                           # AJOUT
    if total_tours == 0:                                    # AJOUT
        msg_stat = "1er tour pas fini ! " +\
                   "Tu veux recommencer ?"                  # AJOUT
    else:
        moy = str(total_saisies / float(total_tours))       # AJOUT
        msg_stat = "Tu as fais " +str(total_tours) +\
                   " tours. Moyenne de " +str(moy)          # AJOUT
    break                                                   # AJOUT
 
 
total_saisies = total_saisies + ce_tour
print("Tu as fait "+str(ce_tour) + " saisies.")
moy = str(total_saisies / float(total_tours))
print("Ta moyenne de saisie/tour = " + moy)
print("")
 
# AJOUT MESSAGE DE SORTIE
print(QUIT_MSG)
print(msg_stat)
Message d'erreur dans je veux lancer le jeu : """ 'break' outside loop

J'ai pourtant recopier ce qu'il y a dans le livre.
Dans les cours, il y a des erreurs volontaires (sans donner la solution) pour apprendre. Mais là, je ne vois pas, et à mon avis, il ne devrait pas y en avoir dans ce code final.

Bref, j'ai cherché, cherché, ... Rien
Le but, est de pouvoir quitter le jeu avec la lettre 'q'.

Je vous remercie d'avance pour votre aide.