python新手 - 为什么只打印第一行?

时间:2013-07-08 21:54:17

标签: python-2.7

我确信这对每个人来说都是超级基础,但由于某种原因,我无法弄清楚下面的代码只打印出来“很高兴再次见到你。”

我是编程的新手,这是我第一次尝试创建一些小的东西来进行交互。任何想法为什么elif和其他选项不打印?

def was_read():
    print "Have you read this before?"
    read = raw_input('Yes or No? ')
    if read == 'Yes' or 'yes':
        print 'Glad to see you back at it again.'
    elif read == 'No' or 'no':
        print 'Hope its a good one then!'
    else:
        print "I'm sorry I didn't understand that"
        was_read()

1 个答案:

答案 0 :(得分:5)

虽然Python可能看起来像英语,但它不是英语。你写的内容将被解释为:

if (read == 'Yes') or ('yes')

'yes'是真实的,因此您的if声明的确如下:

if (read == 'Yes') or True

False or TrueTrue or True都是True,因此您的第一个if语句将始终为真。

明确:

if read == 'Yes' or read == 'yes'

或者只是采用更简单的方式:

if read.lower() == 'yes'