"Build a Simple Android App (2014)" was retired on August 31, 2016. You are now viewing the recommended replacement.
Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Well done!
      You have completed Python Basics!
      
    
You have completed Python Basics!
Preview
    
      
  Let's take a look at boolean literals True and False and how to use logic
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
                      A boolean data type only has two
valid values, true and false.
                      0:00
                    
                    
                      These values are gonna be use heavily in
the code that we create from here on out.
                      0:05
                    
                    
                      There are many times where
we'll wanna ask a yes or
                      0:09
                    
                    
                      no question and then run different code
based on how the question's answered.
                      0:11
                    
                    
                      Booleans are named after their creator,
a mathematician named George Boole.
                      0:16
                    
                    
                      In George's algebra, he used ones
to represent the value true and
                      0:20
                    
                    
                      zeros to represent false.
                      0:25
                    
                    
                      And this is the reason you see actors
playing hackers in movies dealing with
                      0:27
                    
                    
                      ones and zeros.
                      0:31
                    
                    
                      There's a popular saying in this world
that says, it's all ones and zeros.
                      0:32
                    
                    
                      And that's because it is.
                      0:36
                    
                    
                      Electrical circuits used in
the computer you're using right now,
                      0:37
                    
                    
                      are using boolean values, on or
off, true or false, one or zero.
                      0:41
                    
                    
                      So, they seem pretty important
to get a handle on, right?
                      0:44
                    
                    
                      We should explore these, true or false?
                      0:48
                    
                    
                      The answer is true.
                      0:51
                    
                    
                      There are only two boolean literals,
true and false.
                      0:52
                    
                    
                      A variable can refer to the boolean result
in an expression like our in keyword.
                      0:58
                    
                    
                      For instance,
has_taco = is taco in catacombs.
                      1:03
                    
                    
                      You'll see that that was stored.
                      1:10
                    
                    
                      Has_taco, is stored true in there.
                      1:13
                    
                    
                      And just like our other data types,
                      1:16
                    
                    
                      you can actually coerce
values to be true or false.
                      1:18
                    
                    
                      It's called bool and
as you probably guessed,
                      1:22
                    
                    
                      bool(1) is true and
of course bool(0) is false.
                      1:27
                    
                    
                      Now here's something
that might surprise you.
                      1:34
                    
                    
                      In addition to being the answer to
the meaning of life, 42 is also true.
                      1:36
                    
                    
                      In fact, any non-zero number is true,
and zero is false.
                      1:42
                    
                    
                      So, what happens with the string?
                      1:47
                    
                    
                      So if I say,
what's the boolean of burrito.
                      1:50
                    
                    
                      Now I guess speaking personally in
this statement, I want a burrito,
                      1:58
                    
                    
                      is always gonna return true, but
that's not why this is true.
                      2:01
                    
                    
                      What's happening here is any
object that isn't empty is true.
                      2:04
                    
                    
                      Now, empty is an interesting concept
that we haven't talked about just yet.
                      2:09
                    
                    
                      So, a string literal is a pair of
quotes surrounding a character, right?
                      2:13
                    
                    
                      But what if there aren't
any characters in there.
                      2:18
                    
                    
                      Now this is known as an empty string,
and as you can see, it's false.
                      2:23
                    
                    
                      This emptiness is false,
tends to be a common confusion point for
                      2:28
                    
                    
                      developers, so
I want to introduce you to another term.
                      2:32
                    
                    
                      The way in which a value coerces
to a boolean also has a name,
                      2:36
                    
                    
                      it's truthy or falsey.
                      2:41
                    
                    
                      So, for instance,
I can say that empty string is falsey, and
                      2:44
                    
                    
                      the number seven is truthy.
                      2:48
                    
                    
                      I know it sounds like I made that
word up but I assure you it's real,
                      2:50
                    
                    
                      and you'll see it and hear it used.
                      2:54
                    
                    
                      I guess it's slightly better than
saying it's true-ish or false-ish.
                      2:56
                    
                    
                      So all that to say, emptiness is falsey.
                      3:01
                    
                    
                      [LAUGH] Sounds like
the name of an emo band.
                      3:04
                    
                    
                      I'd like to introduce you to a couple
of keywords that you already know and
                      3:09
                    
                    
                      use in real life.
                      3:12
                    
                    
                      You are about to see some of
the beauty of Python's readable syntax.
                      3:14
                    
                    
                      So, if I wanted to negate a boolean value,
you know,
                      3:19
                    
                    
                      get the opposite of the value,
I can use the not keyword.
                      3:22
                    
                    
                      So I can say not True, and it says False.
                      3:26
                    
                    
                      Neat, right?
                      3:31
                    
                    
                      And if I say not False,
we'll see that that's actually True.
                      3:31
                    
                    
                      So next up, you can actually chain
together booleans using the keyword and.
                      3:36
                    
                    
                      So if we say, True and True,
we see that that's True.
                      3:44
                    
                    
                      The way that and works is that both
booleans on both sides of the and
                      3:49
                    
                    
                      must be true.
                      3:54
                    
                    
                      So, you can keep chaining them together,
too.
                      3:55
                    
                    
                      And it works just like order of
operations on our math examples,
                      3:57
                    
                    
                      it goes from left to right.
                      4:01
                    
                    
                      So if I say True and True and
True, we get back True.
                      4:03
                    
                    
                      But what happened was it checked this
True and True, and that returned True.
                      4:10
                    
                    
                      So that True, the result of this was
checked against this, True and True and
                      4:15
                    
                    
                      both sides were true so
therefore it's true.
                      4:19
                    
                    
                      But, if we come and we slap a false
at the very end, and False.
                      4:21
                    
                    
                      We'll see that it's false because all of
this became true, and then we had true and
                      4:26
                    
                    
                      false, and both sides must be true
in order for and to return true.
                      4:31
                    
                    
                      And it wasn't, so it returned false.
                      4:36
                    
                    
                      So ors work a little bit different.
                      4:38
                    
                    
                      If either value on either side of
the keyword or is true, it's true then.
                      4:41
                    
                    
                      Ands work with both and
                      4:48
                    
                    
                      ors work with either.
                      4:50
                    
                    
                      So if it's False or True, we're gonna end
up with True, because there's one true.
                      4:52
                    
                    
                      But if we have False or False,
it's gonna be False cuz nothing's true.
                      4:57
                    
                    
                      You can chain ors together too and you can
also use parens just like we did with our
                      5:04
                    
                    
                      math to help it be more specific
about the order of what's happening.
                      5:08
                    
                    
                      So let's just go ahead let's
build something random.
                      5:12
                    
                    
                      We'll say (False or False or
                      5:15
                    
                    
                      True) and (True and False).
                      5:21
                    
                    
                      Okay, so let's walk through it
before we press Enter here.
                      5:28
                    
                    
                      So, two falses or'd together that's a false.
                      5:30
                    
                    
                      So we have a False or True.
                      5:34
                    
                    
                      One of those is true, so we have a true.
                      5:36
                    
                    
                      So True and, and (True and
False), so this is a false.
                      5:38
                    
                    
                      So we have True here and
                      5:42
                    
                    
                      we have False over here because
not both of these are true.
                      5:43
                    
                    
                      So we have a False and
a True, that should be False.
                      5:47
                    
                    
                      Because both sides need to be true.
                      5:53
                    
                    
                      And remember, we can always negate.
                      5:55
                    
                    
                      We come in here, we can say, and not.
                      5:59
                    
                    
                      Now you'll see that it looks
like I typed over the front.
                      6:03
                    
                    
                      This is a bug that sometimes
happens in the REPL.
                      6:05
                    
                    
                      So I'm gonna press Spacebar.
                      6:08
                    
                    
                      Even though that looks wrong, watch.
                      6:10
                    
                    
                      Press Enter, it came true.
                      6:12
                    
                    
                      If we look at it, there it is.
                      6:14
                    
                    
                      So we have false, or
false, or true and not.
                      6:15
                    
                    
                      And so that negated this last one here,
so this not true or false, true and
                      6:18
                    
                    
                      false was false.
                      6:22
                    
                    
                      Not false is true.
                      6:23
                    
                    
                      I know that this is all
a little bit abstract.
                      6:25
                    
                    
                      So, let's try to make this
a little more concrete.
                      6:29
                    
                    
                      Let's think about a dating app.
                      6:32
                    
                    
                      And let's try to imagine some
code that might exist there.
                      6:35
                    
                    
                      So, Heidi has some kids.
                      6:39
                    
                    
                      And she'd like to find
someone who has kids too.
                      6:41
                    
                    
                      But she can't stand smoking, she abhors it.
                      6:44
                    
                    
                      So, let's fill out a profile for
a parent on the site who's also a smoker.
                      6:47
                    
                    
                      So, is_smoker = True, and
                      6:52
                    
                    
                      their parents, so has_kids = True.
                      6:56
                    
                    
                      So Heidi's requirements look like this.
                      7:01
                    
                    
                      She says I want somebody who's a parent.
                      7:04
                    
                    
                      So he has_kids and is not a smoker.
                      7:05
                    
                    
                      So, we have in this particular situation,
for her requirements, this profile here,
                      7:13
                    
                    
                      we have has_kids, that's true and
not is_smoker, so that's false.
                      7:19
                    
                    
                      So we have true and false,
that's a false, that didn't work out,
                      7:24
                    
                    
                      Heidi is gonna swipe left.
                      7:28
                    
                    
                      That's just isn't the one for here I
guess, here's hoping that she finds her.
                      7:30
                    
                    
                      Do you see the power of booleans?
                      7:34
                    
                    
                      They can help you to find true love.
                      7:36
                    
                    
                      Now, to really fall for booleans, I'd like
to show off the ability to run different
                      7:40
                    
                    
                      blocks of code based on their value.
                      7:44
                    
                    
                      This is called conditional branching.
                      7:46
                    
                    
                      Let's branch off to that topic,
right after this quick break.
                      7:48
                    
              
        You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up