Mettre une boucle For (in range) dans une condition If

Résolu
Oxy_ Messages postés 2 Statut Membre -  
Oxy_ Messages postés 2 Statut Membre -
Bonsoir,

Je commence à programmer sur python et suis bloqué sur le problème décrit dans le titre : je voudrai mettre une boucle
for in range
... dans une condition
if


Voici mon programme :

Pour expliquer rapidement, le programme est bloqué par
while
tant que l'utilisateur ne rentre pas une réponse attendue (Q sert de condition pour bloquer while). Le nombre de réponses attendues est
m
et les réponses sont dans
liste
.
ex : si m=4, liste = ['1', '2', '3', '4']

liste = []
  for o in range(m):
    liste.append(str(o+1)) #je mets str() car la sortie de input() est une variable de type string
  
Q=0
while Q!=1:
    réponse=input('>')
    if (??): 
      Q+=1


Je voudrai mettre dans dans la condition
if
ligne 8 quelque chose du genre :

for x in range(m):
   liste.pop(x+1)


Cependant je ne sais pas comment mettre une boucle for dans une condition if, d'où mon post sur ce forum !
Merci d'avance !

1 réponse

  1. jee pee Messages postés 9441 Date d'inscription   Statut Modérateur Dernière intervention   9 981
     
    Bonjour,

    Je n'ai pas vraiment saisi ce que tu veux faire. Tester la réponse de l'utilisateur par rapport aux valeurs de la liste ? Si c'est le cas :
    m = 4
    liste = []
    for o in range(m):
        liste.append(str(o+1)) #je mets str() car la sortie de input() est une variable de type string
    print(liste)
      
    while True:
        reponse=input('>')
        if reponse in liste:
            break
    print('Saisie correcte') 


    while True
    est une boucle infinie.
    break
    sert à sortir de la boucle
    while
    .

    On pourrait aussi se passer de créer la liste :
    while True:
        reponse=int(input('>'))
        if reponse in range(1,m+1):
            break
    print('Saisie correcte', reponse)

    comme on convertit l'input en int() suivant la rigueur du code nécessaire, on pourrait avoir besoin de gérer les erreurs si on ne saisit pas un nombre (avec try: except:)

    1
    1. Oxy_ Messages postés 2 Statut Membre
       
      Oui c'est bien ce que je voulais faire !

      J'ai cherché beaucoup trop compliqué alors que la réponse était toute simple. Je retiens également le
      break
      , très pratique !

      Merci beaucoup je vais pouvoir continuer mon programme !
      0