[Tutor] Why isn't my simple if elif script not working?

Andre' Walker-Loud walksloud at gmail.com
Wed Jul 18 07:21:50 CEST 2012


Hi Santosh,

On Jul 17, 2012, at 10:09 PM, Santosh Kumar wrote:

> Here is my script:
> 
> name = raw_input("What's your name? ")
> 
> if name == "Santosh":
>    print "Hey!! I have the same name."
> elif name == "John Cleese" or "Michael Palin":
>    print "I have no preference about your name. Really!!"
> else:
>    print "You have a nice name."
> 
> 
> The if part works well. The elif part works well too. The problem is
> even if you enter strings other than "Santosh", "John Cleese" and
> "Michael Palin" you still get the print from elif part, not from else
> part.

you just have to be careful with the multiple boolean line in the elif.  You can use either

elif name == ("John Cleese" or "Michael Palin"):

or

elif name == "John Cleese" or name == "Michael Palin":


With your elif line, it is asking "does name ==  John Cleese" or "Michael Palin", and so if the name is not John Cleese, then I believe it prints "Michael Palin" while reporting True, so satisfying the elif clause.


Cheers,

Andre


More information about the Tutor mailing list