2017-10-19 5 views
-1

Je veux, en utilisant le tableau compte et pour la déclaration, pour vérifier dans une boucle si la valeur d'entrée est à portée [0, 2] impression « Vous avez dépassé le montant maximum des essais » lorsque l'utilisateur tente d'entrer une valeur erronée plus de 3 fois, le code est:pour la mise en œuvre de l'instruction pour le comptage try en python

a=int(raw_input("a ")) 
count=[1,2,3] 
attemp=1 
for i in count: 
    while (a<0 or a>2): 
     print ("WRONG") 
     a=int(raw_input("a")) 
     if (a>=0 and a<= 2): 
     i=4 
     else: 
     i+=1 
    attempt=i 
if(attempt<=3): 
    print ("You needed %i" %attempt) 
else: 
    print ("You exceeded the maximum amount of tries") 

je rencontre un problème logique quand j'exécute le code, je peux entrer une quantité infinie de valeurs non valides lorsque le montant maximum de essais devraient être 3, donc il ne sera pas atteindre print ("You exceeded the maximum amount of tries")

+1

Vous avez des problèmes de fautes de frappe et d'indentation dans quelques endroits. Dans ce le code réel? – Carcigenicate

+0

Votre boucle interne défait essentiellement le but de la boucle externe. Pourquoi ne pas avoir une boucle * single * qui à la fois tient compte des tentatives et vérifie également les entrées valides. Quittez la boucle si l'entrée est valide ou si le nombre maximal de tentatives a été dépassé. –

+0

@Carcigenicate oui c'est, j'apprends python à partir de zéro alors je n'ai pas remarqué quelques fautes de frappe et d'indentation – Angelixus

Répondre

-1

Vous choses trop compliquer. Que diriez-vous de ceci:

a = -1 
attempt = 0 
while not 0 <= a <= 2: 
    attempt += 1 
    if attempt == 3: 
     break 
    a = raw_input('a ') 

if attempt < 3: 
    print ("You needed %s" % attempt) 
else: 
    print ("You exceeded the maximum amount of tries")