开发者

OR statement handling two != clauses Python

(Using Py开发者_C百科thon 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!


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.


....or a different way to express it that may seem more natural to you:

while input not in (10, 20):
    # your code here...


Did you mean to have the bet be input. And I think you meant to say if input if not 10 and is not 20.

input = int(raw_input())
while input != 10 and input != 20:
    print 'Incorrect value, try again'
    input = int(raw_input())


I think you want an and there.

while input != 10 or input != 20:

This will repeat forever - if input is 10, then the first condition is false. if input is 20, the second condition is false. input can never be both 10 and 20, so that's equivalent to true.


You want "and" and not "or". Think about your boolean logic.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜