IF条件为String失败

Oz *_*lom -3 python

我一直在处理一个我正在处理的简单代码的问题.它询问你的名字,以及你的一天如何,根据你的答案,它应该做与该答案相关的行动.感谢您提前帮助.

import time
print "Hello."
time.sleep(.5)
print "What's your name?"
var = raw_input()
time.sleep(.3)
print "Hello", var
time.sleep(1)
print "How are you?"
i = 0
answer1 = False
answer2 = False
answer0 = False
repeat = True
while repeat == True:
        if i == 0:
                answer = raw_input()
        if answer == "Good" or "good":
                answer1 = True
        if answer == "Bad" or "bad":
                answer2 = True
        if answer is not "good" or "Good" or "ok" or "Ok" or "OK" or "Not so good" or "not so good" or "Not so good." or "not so good.":
                answer0 = True
        if answer2 == True:
                print "That sucks."
                time.sleep(1)
                print "Well that's end of my code", var
                time.sleep(1)
                print "See ya!"
                break
        if answer1 == True:
                print "That's awesome!"
                time.sleep(1)
                print "Well that's end of my code", var
                time.sleep(1)
                print "See ya!"
                break
        if answer0 == True:
                print "I'm sorry, I didn't understand you."
                time.sleep(1.5)
                print "Are you good, ok, or not so good?"        
Run Code Online (Sandbox Code Playgroud)

Apr*_*ion 15

这些条件总是正确的,因为非空字符串文字在python中是真的:

if answer == "Good" or "good":
if answer == "Bad" or "bad":
if answer is not "good" or "Good" or "ok" ...:
...
# is the same as
if (something == something_else) or (True) or (True) ... :`
Run Code Online (Sandbox Code Playgroud)

所以用以下代码重新代码:

if answer in ("Good", "good"):
if answer not in ("good", "Good", "ok", ...):
....
Run Code Online (Sandbox Code Playgroud)

或者更好的是,如果你想包括"好"和其他案例变化:

if answer.lower() == "good":
if answer.lower() not in ("good", "ok", ...):
...
Run Code Online (Sandbox Code Playgroud)