Python Python Basics (2015) Letter Game App Exiting

Why can't I use OR in if statement?

I found out that I have to .lower the input. But I first tried with 'n' or 'N'. And that didn't work. Seemed logical that it would. Why doesn't it work?

firedoor.py
import sys

start = input('want to start the movie? ')
if start != 'n' or 'N':
    print ('Enjoy the show!')
else:
    sys.exit()

2 Answers

Jason Anders
MOD
Jason Anders
Treehouse Moderator 143,823 Points

Hi there,

You're doing really well so far, there are just a couple of things.

First, when checking multiple conditions on the same line, everything needs to be repeated for the subsequent conditions. Instead of:

if start != "n" or "N":

It needs to be:

if start != "n" or start != "N":

Make sense? Each condition needs to be told again what it is comparing to.

Second, you can't use or in this example. With or, only one of the conditions has to evaluate to True to pass. So, the first check is looking for not equal to a lower case 'n'... if someone puts in an upper-cased "N" then this returns True as it is Not Equal to the lower case and will trigger the if block, and the second condition will not even run.
With and, both must return true to execute. So, an upper-cased "N" passes the first condition, but gets 'caught' on the second so the whole line returns False and the program executes the else block.

I hope that makes sense!

Other wise, nice work. Just one more tip. in python, it is the convention to not have a space separating the method and the parameters. So, print ('Enjoy the show!') should be print('Enjoy the show!'). The former won't cause an error, but it should be the latter.

Keep Coding! :) :dizzy:

ah ofc. that makes sense :)

those not not true and or false are still messing with my brain. Will need to spend some more times with the not not true bools :p

Thank you on the space "issue". Just a habit that I need to relearn.

Jason Anders
Jason Anders
Treehouse Moderator 143,823 Points

The "not not true" things still mess with my brain too, so believe me ... you're not alone on that one. Lol