Logical Operators

Objective

After working through this lesson, you’ll be able to:

  • Write Python code that uses logical operators to connect Boolean expressions.

Introductory Problem

Write Python code to determine if you and your friend will get a fire emoji.

Ask the user, "Have you snapped with your friend for the past 3 days? ")

  • If yes, print "you snapped with your friend"

  • If no, print "you have not snapped with your friend"

Ask the user, "Has your friend snapped with you for the past 3 days"

  • If yes, print "your friend snapped with you"

  • If no, print "your friend has not snapped with you"

If the answer to both questions is yes, then print, you started a Snapstreak!

intro.py
sent = input("Have you snapped with your friend for the past 3 days? ")
if sent == "yes":
   print("you snapped with your friend")
elif sent == "no":
   print("you have not snapped with your friend")
received = input("Has your friend snapped with you for the past 3 days? ")
if received == "yes":
   print("your friend snapped with you")
elif received == "no":
   print("your friend has not snapped with you")
if sent == "yes":
   if received received == "yes":
      print("you started a Snapstreak!")

Logical operators allow you to connect Boolean expressions to create a compound expression.

Operator

Meaning

and

Connects two Boolean expressions into one compound expression. Both subexpressions must be true for the compound expression to be true.

or

Connects two Boolean expressions into one compound expression. One or both subexpressions must be true for the compound expression to be true.

not

Reverses the truth of its operand

Example 1

Rewrite the Introductory Problem using the logical and operator. If both conditions are true, print, you started a Snapstreak! Else print, not so friendly yet.

example1.py
sent = input("Have you snapped with your friend for the past 3 days? ")
if sent == "yes":
   print("you snapped with your friend")
elif sent == "no":
   print("you have not snapped with your friend")
received = input("Has your friend snapped with you for the past 3 days? ")
if received == "yes":
   print("your friend snapped with you")
elif received == "no":
   print("your friend has not snapped with you")
if sent == "yes" and received == "yes":
   print("you started a Snapstreak!")
else:
   print("not so friendly yet")

Example 2

Snapchat decides to change its criteria for creating a Snapstreak. Now only one user has to send a message to the other for three days. Change the code to satisify the new condition.

example2.py
sent = input("Have you snapped with your friend for the past 3 days? ")
if sent == "yes":
   print("you snapped with your friend")
elif sent == "no":
   print("you have not snapped with your friend")
received = input("Has your friend snapped with you for the past 3 days? ")
if received == "yes":
   print("your friend snapped with you")
elif received == "no":
   print("your friend has not snapped with you")
if sent == "yes" or received == "yes":
   print("you started a Snapstreak!")
else:
   print("not so friendly yet")

Example 3

Hundred emoji. Ask the user:

  • how many days in a row have you sent your friend a message?

  • how many days in a row has your friend has sent you a message?

If you and your friend have sent a message to each other for more than 100 days in a row, print you receive a hundred emoji. Otherwise, print not there yet.

example3.py
dayssent = int(input("How many days in a row have you sent your friend a message? "))
daysreceived = int(input("How many days in a row has your friend sent you a message? "))
if dayssent >= 100 and daysreceived >= 100:
   print("you receive a hundred emoji")
else:
   print("not there yet")

Last updated