OU de la déclaration de la gestion de deux != les clauses de Python
(À l'aide de Python 2.7) je comprends que c'est assez élémentaire, mais pourquoi ne pas la déclaration suivante de travail comme l'écrit:
input = int(raw_input())
while input != 10 or input != 20:
print 'Incorrect value, try again'
bet = int(raw_input())
Fondamentalement, je veux seulement accepter de 10 ou 20 comme une réponse. Maintenant, quel que soit 'input', 10, ou 20, j'obtiens 'valeur Incorrecte'. Ces clauses auto contradictoires? Je pensais que le OU la déclaration dirais OK, tant que l'une des clauses était correcte. Merci!
Remarque: il est préférable de ne pas utiliser un nom de variable puis redéfinit la builtin "entrée" de la fonction. Renommer. ("réponse" peut-être bon).
OriginalL'auteur thebill | 2011-04-15
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin
and
:Pensez-y: Si le
input
est10
, la première expression estfalse
, provoquant Python pour évaluer la seconde expressioninput != 20
.10
est différente forme20
, donc c'expressions évalue àtrue
. Commefalse or true == true
, l'expression entière esttrue
.De même pour
20
.OriginalL'auteur Felix Kling
....ou une autre façon de l'exprimer qui peut sembler plus naturel pour vous:
OriginalL'auteur bgporter
Avez-vous d'avoir la
bet
êtreinput
. Et je pense que vous avez voulu dire si l'entrée si pas 10, pas 20.OriginalL'auteur MitMaro
Je pense que vous voulez un
and
là.Ce répétera jamais - si
input
est de 10, alors la première condition est fausse. siinput
est de 20, la deuxième condition est fausse.input
ne peut jamais être de 10 et 20, ce qui équivaut àtrue
.OriginalL'auteur T.K.
Que vous voulez "et" et non pas "ou". Pensez à votre logique booléenne.
OriginalL'auteur Andreas Jung