Test de la saisie de l'utilisateur dans une liste en python
J'ai besoin de tester si la saisie de l'utilisateur est le même qu'un élément d'une liste, en ce moment je suis en train de faire ceci:
cars = ("red", "yellow", "blue")
guess = str(input())
if guess == cars[1] or guess == cars[2]:
print("success!")
Mais je suis en train de travailler avec de grandes listes et mon si la déclaration est en croissance beaucoup avec toutes ces vérifications, il est un moyen de faire référence à plusieurs des indices de quelque chose comme:
if guess == cars[1] or cars[2]
ou
if guess == cars[1,2,3]
De lecture les listes de docs que j'ai vu qu'il est impossible de référence de plus d'un indice, comme, j'ai essayé ci-dessus et, bien sûr, envoie une erreur de syntaxe.
- Est-ce intentionnel que vous ne cherchez pas à
cars[0]
? Les listes sont indexés à partir de zéro, de sorte que votre trois voitures sontcars[0]
,cars[1]
etcars[2]
. - j'espère vraiment que vous êtes à l'aide de python 3.x...sinon utiliser raw_input au lieu de saisie et impression " d'avoir du succès!', sans crochets
- Ouais je suis au courant de l'indice 0 dans la liste merci, Et oui, c'est python 3.1
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple est:
mais si votre liste est énorme, ce serait lente. Vous devez ranger votre liste de voitures dans un jeu:
Vérifier si quelque chose est présent, est un ensemble est beaucoup plus rapide que de vérifier s'il est dans une liste (mais cela ne devient un problème lorsque vous avez de nombreux de nombreux articles, et vous faites le vérifier plusieurs fois.)
(Edit: je suis en supposant que l'omission de l'
cars[0]
le code de la question est un accident. Si elle ne l'est pas, puis utilisezcars[1:]
au lieu decars
.)guess
est"red"
, mais votre code.Utilisation
guess in cars
pour tester siguess
est égal à un élément danscars
:Utilisation
in
:Voir également les opérations possibles sur le type de séquence comme documenté dans la documentation officielle.
@Sean Hobbs:
D'abord vous devez affecter une valeur à la variable index.
Vous pouvez utiliser si cela est Vrai pour créer la boucle infinie, de sorte que votre code devrait ressembler à ceci: