0

これは誰にとっても非常に基本的なことだと思いますが、何らかの理由で以下のコードを理解できず、「またお会いできて光栄です」としか出力されません。

私はプログラミングが初めてで、対話する小さなものを作成するのはこれが初めての試みです。elif と else の他のオプションが印刷されない理由はありますか?

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()
4

1 に答える 1

5

Python は英語のように見えるかもしれませんが、英語ではありません。あなたが書いたものは次のように解釈されます:

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

'yes'は真実であるため、ifステートメントは実際には次のように機能します。

if (read == 'Yes') or True

False or TrueTrue or Trueは両方Trueなので、最初のifステートメントは常に true になります。

明確にする:

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

または、より簡単な方法で実行します。

if read.lower() == 'yes'
于 2013-07-08T21:57:02.580 に答える