OR statement handling two != clauses Python
72,717
Solution 1
You need and
:
while input != 10 and input != 20:
Think it through: If the input
is 10
, then the first expression is false
, causing Python to evaluate the second expression input != 20
. 10
is different form 20
, so this expressions evaluates to true
. As false or true == true
, the whole expression is true
.
Same for 20
.
Solution 2
....or a different way to express it that may seem more natural to you:
while input not in (10, 20):
# your code here...
Author by
thebill
Updated on April 16, 2020Comments
-
thebill about 4 years
(Using Python 2.7) I understand this is pretty elementary but why wouldn't the following statement work as written:
input = int(raw_input()) while input != 10 or input != 20: print 'Incorrect value, try again' bet = int(raw_input())
Basically I only want to accept 10 or 20 as an answer. Now, regardless of 'input', even 10, or 20, I get 'Incorrect value'. Are these clauses self conflicting? I thought that the OR statement would say OK as long as one of the clauses was correct. Thanks!
-
thebill about 13 yearsThanks for the full logic stepping. It appears as though I had a bit(heh) of logic dyslexia.
-
thebill about 13 yearsYou're right, I actually like this much better than the latter. Thanks too!