Lesson Overview: 3.5 - Boolean Expressions

  • Here we will focus on:
    • basics of Booleans
    • its relationship with binary
    • relational operators
    • Logical Operators

What is a boolean?

  • A data type with two possible values: true or false

Boolean and Binary

So similar yet so different.

  • Boolean math and binary notation both use the same two ciphers: 1 and 0.
  • However, please note that Boolean quantities are restricted to a singlular bit (can only be either 1, or 0)
  • On the otherhand, binary numbers may be composed of many bits adding up in place-weighted form to any finite value, or size

Must Knows

  • A Boolean value is either TRUE or FALSE
  • The AP Exam will provide you with a reference sheet with the operators below.
  • A few ways these operators could be used...

Relational Operators in action

  • How could you use operators to determine if the average of 5 grades is greater than 80?
  • With the grades below, use a boolean expression to determine if the average grade is above an 80 and print the result (True or False)
  • Try it in as few steps as possible!
  • Be creative! There are obviously TONS of different practical solutions
grade1 = 90
grade2 = 65
grade3 = 60
grade4 = 75
grade5 = 95

grades = [90, 65, 60, 75, 95]
average = (sum(grades)/(len(grades)))
print("The average is " + str(average))
if average > 80:
    print(True)
else:
    print(False)
The average is 77.0
False

The versatility of relational operators:

print("100 == 100:",100==100)
print("Hello == Adios:","greeting"=="farewell")
print("Hello != Adios:","greeting"!="farewell")
print("Hello == Hola:","greeting"=="greeting")
print("5>=4:", 5>=4)
print ('')

# Notice that relational operators can even work on lists!
# For lists, the relational operator compares each respective component until an answer is derived

print("['a','b','c'] > ['x','y','z']:", ['a','b','c'] > ['x','y','z'])
print("[1,2,3,5] > [1,2,3,4]:", [1,2,3,5] > [1,2,3,4])
print("[1,2,3,5] < [1,2,3,4]:", [1,2,3,5] < [1,2,3,4])
print("[1,2,3,5] == [1,2,3,4]:", [1,2,3,5] == [1,2,3,4])
100 == 100: True
Hello == Adios: False
Hello != Adios: True
Hello == Hola: True
5>=4: True

['a','b','c'] > ['x','y','z']: False
[1,2,3,5] > [1,2,3,4]: True
[1,2,3,5] < [1,2,3,4]: False
[1,2,3,5] == [1,2,3,4]: False

Logical Operators!

These types of operators don't necessarily deal with equivalent/non-equivalent values, but they rather work on operands to produce a singular boolean result

  • AND : returns TRUE if the operands around it are TRUE
  • OR : returns TRUE if at least one operand is TRUE
  • NOT : returns TRUE if the following boolean is FALSE

Turn the following arithmetic phrases into either True or False statements as indicated USING LOGICAL OPERATORS

print("1 > 2 or 5 < 12:",1 > 2 or 5 < 12)
# Output TRUE  using OR ^


# Output FALSE using NOT
print("24 > 8:", not 24 > 8)

# Output FALSE using AND
print("10 > 20:", 10 > 20 and 12 > 77)
1 > 2 or 5 < 12: True
24 > 8: False
10 > 20: False

Lesson Overview: 3.6 - Conditionals

Focusing on Selection

Selection: uses a condition that evaluates to true or false

Selection determines which part of an algorithm are executed based on a condition being true or false

Algorithm is a finite set of instructions that accomplish a specific task

Conditional Statements

Also known as "if statements"

Can be seen as if statements or if blocks Can also be seen as if else statements or if else-blocks

x = 20
y = 10
if x > y:
    print("x is greater than y")
x is greater than y
x = 20
y = 10
if x > y:
    print("x is greater than y")
else:
    print("x is not greater than y")
x is greater than y

Participation

-Calculate the total sum of two numbers, if it is equal to 200, print 200, if otherwise, print the sum.

num1 = 88
num2 = 45
sum = (num1 + num2)
if sum == 200:
    print(200)
else:
    print(sum)
133

Lesson Overview - 3.7 Nested Conditionals

  • Nested conditional statements consist of conditional statements within other conditional statements
  • Utilizes "if else" statements within "if else" statements

Analyzing Code Walkthrough

  • Psuedocode to the left, block code to the right
  • Approach the problem by going through each condition one at a time
    • Decide which ones are false to skip and which ones are true to execute
score = 82
if (score >= 90):
    print("You got an A, congrats!")
else:
    if (score >= 75):
        print("Please come to retake up to a 90 next week at tutorial!")
    else:
        print("You have detention!")
Please come to retake up to a 90 next week at tutorial!
protein = 25
carbs = 36
sugar = 11
if (carbs >= 55 || protein <= 20 || sugar >= 15)
{
    console.log("Your lunch is too unhealthy, please pick a new one")
}
else
{
    if (carbs < 35 || protein < 25)
    {
    console.log ("This lunch is alright but try to add some more carbs or protein")
    }
    else 
    {
    if (sugar >= 11)
    {
    console.log ("Looks great but lets see if we can cut down on sugar, we don't want diabetes!")
    }
    else
    {
        console.log ("Amazing, you created a healthy lunch!!!")
    }
    }
}
Looks great but lets see if we can cut down on sugar, we don't want diabetes!

Writing Nested Code Activity

  1. Write a program that fits these conditions using nested conditionals:
    • If a person has at least 8 hours, they are experienced
    • If a person is experienced their salary is 90k, if they have ten hours or above their salary 150k
    • If a person is inexperienced their salary is always 50k
    • print the salary of the person at the end and whether they are experienced or not
person = "John"
hours = 11
salary = 110000
console.log(person + "'s salary is $" + salary)
if (hours >= 8)
{
console.log(person,"is experienced")
}
else
{
console.log("Sadly you aren't experienced enough")
}
John's salary is $110000
John is experienced

Hacks Assignments:

Conditionals:

  • Write a program that fits these conditions using nested conditionals:
    • If the product is expired, print "this product is no good"
    • If the cost is above 50 dollars, and the product isn't expired, print "this product is too expensive"
    • If the cost is 25 dollars but under 50, and the product isn't expired, print "this is a regular product"
    • If the cost is under 25 dollars, print "this is a cheap product"
cost = 51; 
expired = False
if (expired == True):
    print("This product is no good")
else:
    if (cost > 50): 
        print("This product is too expensive")
    elif (cost < 25):
        print("This is a cheap product")
    else:
        print("This is a regular product")
This product is no good

Boolean/Conditionals:

  • Create a multiple choice quiz that ...
    • uses Boolean expressions
    • uses Logical operators
    • uses Conditional statements
    • prompts quiz-taker with multiple options (only one can be right)
    • has at least 3 questions
  • Points will be awarded for creativity, intricacy, and how well Boolean/Binary concepts have been intertwined
quiz = {
    "q" : ["Who won the last edition of the Fifa World Cup?", "How many world cup goals does Messi have in his career so far?", "Which team has won the most amount of World Cup trophies in the history of the competition?"],
    "a" : [["Germany","France","India","Brazil"], ["7","16","10","9"], ["Argentina","Spain","England","Brazil"]], 
    "answerkey" : ["b", "d", "d"],
    "options" : ["a", "b", "c", "d"]
}

print("Welcome to my World Cup Quiz!")
totalQs = 3
i = 0
score = 0

while i != totalQs:
    status = False

    currentquestion = quiz["q"][i]
    print(currentquestion + "\n")
    
    n = 0

    while n < 4:
        print(str(quiz["options"][n]) + ": " + str(quiz["a"][i][n]))
        n += 1
    
    ans = input(currentquestion)
    ans.lower()
    
    print("")
    
    while status == False:
        if  ans == "a" or "b" or "c" or "d":
            if ans == quiz["answerkey"][i]:
                score += 1
                print("Congratulations", ans.lower(), "is correct!")
            else:
                print("Sadly", ans.lower(), "is incorrect :(")

            status = True
        else:
            print("Enter select a valid option")
            
    print("Your score is: " + str(score) + " points \n")
    
    i += 1
Welcome to my World Cup Quiz!
Who won the last edition of the Fifa World Cup?

a: Germany
b: France
c: India
d: Brazil

Congratulations b is correct!
Your score is: 1 points 

How many world cup goals does Messi have in his career so far?

a: 7
b: 16
c: 10
d: 9

Congratulations d is correct!
Your score is: 2 points 

Which team has won the most amount of World Cup trophies in the history of the competition?

a: Argentina
b: Spain
c: England
d: Brazil

Congratulations d is correct!
Your score is: 3 points