2016-11-26 1 views
0

Je suis en train d'utiliser le code suivant:Comment voir si l'utilisateur a choisi un élément dans une liste (python)

blosum = input("pick a matrix:") 
x = [30, 40, 50, 100, 75, 70] 
while blosum not in x : 
    blosum = raw_input("Incorrect, pick a valid matrix:") 
print ('ok')  

Je veux décider si l'utilisateur a choisi l'une des options de la liste. Si l'utilisateur en choisit un, le programme doit continuer à fonctionner, sinon il continue à dire à l'utilisateur de choisir une matrice valide. Mais ça ne marche pas, pourquoi?

Répondre

0

Allez-y et changer raw_input à input dans votre code comme ceci et jeter les données fournies par l'utilisateur à un nombre entier comme ceci:

blosum = int(input("pick a matrix: ")) 
x = [30, 40, 50, 100, 75, 70] 
while blosum not in x: 
    blosum = int(input("Incorrect, pick a valid matrix:")) 
print ("OK") 

test

$ python test.py 
pick a matrix: 1 
Incorrect, pick a valid matrix:2 
Incorrect, pick a valid matrix:30 
OK 

Cela fonctionne pour les deux Python 2.7+ et 3+, je crois, mais vous devriez le tester quand même.

la différence entre raw_input et input dans des questions comme celles-ci: