1

s = 'yes' であるため、これを実行するたびに、最初のオプションを返す必要があるときに 3 番目のオプションを取得します。ここで何がうまくいかないのですか?

def shut_down(s):
    if s is 'yes':
        return 'Shutting down...'
    elif s is 'no':
        return 'Shutdown aborted!'
    else:
        return "Sorry, I didn't understand you"

ans = 'Yes'
s = ans.lower()
shut_down(s)
4

2 に答える 2

5

変化する

if s is 'yes':

if s == 'yes':

elif s is 'no':

elif s == 'no':

whileis は有効な operator ですが、ここで使用するものではありません (文字シーケンスを比較するのではなく、オブジェクトの同一性を比較します)。

于 2013-03-16T22:55:11.527 に答える
4

is平等ではなく、同一性をテストします。文字列が等しい かどうかをテストするにyess=='yes'

于 2013-03-16T22:55:24.863 に答える