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

Résolu
Oxy_ Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Oxy_ Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
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

jee pee Messages postés 41510 Date d'inscription   Statut Modérateur Dernière intervention   9 715
 
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
Oxy_ Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
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