## Key Concepts

Review core concepts you need to learn to master this subject

### Equal Operator

# Equal operator if 'Yes' == 'Yes': print('They are equal') if (2 > 1) == (5 < 10): print('Both expressions give the same result') c = '2' d = 2 if c == d: print('They are equal') else: print('They are not equal')

The Python equal operator (==) is used to compare two values, variables or expressions to determine if they are the same.

If the values being compared are the same, the operator returns True, otherwise it returns False.

The operator takes the data type into account when making the comparison, so a string value of "2" is not considered the same as a numeric value of 2.

When the operands are expressions, they are evaluated first, before the comparison is made.

### Not Equals Operator

# Equal operator if 'Yes' == 'Yes': print('They are equal') if (2 > 1) == (5 < 10): print('Both expressions give the same result') c = '2' d = 2 if c == d: print('They are equal') else: print('They are not equal')

The Python not equals operator (!=) is used to compare two values, variables or expressions to determine if they are NOT the same. If they are NOT the same, the operator returns True. If they are the same, then it returns False. The operator takes the data type into account when making the comparison so a value of 10 would NOT be equal to the string value "10" and the operator would return True. If expressions are used, then they are evaluated to a value of True or False before the comparison is made by the operator.

### Comparison Operators

# Equal operator if 'Yes' == 'Yes': print('They are equal') if (2 > 1) == (5 < 10): print('Both expressions give the same result') c = '2' d = 2 if c == d: print('They are equal') else: print('They are not equal')

In Python, relational operators compare two values or expressions. The most common ones are less than (<), greater than (>), less than or equal to (<=), and greater than or equal to (>=). If the relation is sound, then the entire expression will evaluate to True. If not, the expression evaluates to False.

### Boolean and Operator

# Equal operator if 'Yes' == 'Yes': print('They are equal') if (2 > 1) == (5 < 10): print('Both expressions give the same result') c = '2' d = 2 if c == d: print('They are equal') else: print('They are not equal')

The Python and operator performs a Boolean comparison between two Boolean values, variables, or expressions. If both sides of the operator evaluate to True then the and operator returns True. If either side (or both sides) evaluates to False, then the and operator returns False. A non-Boolean value or variable will always evaluate to True when used with the and operator as long as they are assigned to a value.

### The Python or Operator

# Equal operator if 'Yes' == 'Yes': print('They are equal') if (2 > 1) == (5 < 10): print('Both expressions give the same result') c = '2' d = 2 if c == d: print('They are equal') else: print('They are not equal')

The Python or operator combines two Boolean expressions and evaluates to True if at least one of the expressions returns True. Otherwise, if both expressions are False, than the entire expression evaluates to False. The code above gives examples on how this works.

### The Python not Operator

# Equal operator if 'Yes' == 'Yes': print('They are equal') if (2 > 1) == (5 < 10): print('Both expressions give the same result') c = '2' d = 2 if c == d: print('They are equal') else: print('They are not equal')

The Python Boolean not operator is used in a Boolean expression in order to evaluate the expression to its inverse value. If the original expression was True, including the not operator would make the expression False, and vice versa. For example, the statement 1>2 evaluates to False so adding the not operator will make not 1>2 evaluate to True.

### if Statements

# Equal operator if 'Yes' == 'Yes': print('They are equal') if (2 > 1) == (5 < 10): print('Both expressions give the same result') c = '2' d = 2 if c == d: print('They are equal') else: print('They are not equal')

The Python if statement is used to determine the execution of code based on the evaluation of a Boolean expression. If the if statement expression evaluates to True, then the indented code following the statement is executed. If the expression evaluates to False then the indented code following the if statement is skipped and the program executes the next line of code which is indented at the same level as the if statement.

### else Statement in Python

# Equal operator if 'Yes' == 'Yes': print('They are equal') if (2 > 1) == (5 < 10): print('Both expressions give the same result') c = '2' d = 2 if c == d: print('They are equal') else: print('They are not equal')

The Python else statement provides alternate code to execute if the expression in an if statement evaluates to False.

The indented code for the if statement is executed if the expression evaluates to True. The indented code immediately following the else is executed only if the expression evaluates to False. To mark the end of the else block, the code must be unindented to the same level as the starting if line.

### Boolean Values

# Equal operator if 'Yes' == 'Yes': print('They are equal') if (2 > 1) == (5 < 10): print('Both expressions give the same result') c = '2' d = 2 if c == d: print('They are equal') else: print('They are not equal')

Booleans are a data type in Python, much like integers, floats, and strings. However, booleans only have two values: True of False. Specifically, these two values are of the bool type. Since booleans are a data type, creating a variable that holds a boolean value is the same for other data types.

### elif Statement

# Equal operator if 'Yes' == 'Yes': print('They are equal') if (2 > 1) == (5 < 10): print('Both expressions give the same result') c = '2' d = 2 if c == d: print('They are equal') else: print('They are not equal')

The Python elif statement allows for continued checks to be performed after an initial if statement. An elif statement differs from the else statement because another expression is provided to be checked just as with the initial if statement. If the expression is True the indented code following the elif is executed. If the expression evaluates to False the code can continue to an optional else statement. Multiple elif statements can be used following an initial if to perform a series of checks. Once an elif expression evaluates to True no further elif statements are executed.

### Handling exceptions in Python

# Equal operator if 'Yes' == 'Yes': print('They are equal') if (2 > 1) == (5 < 10): print('Both expressions give the same result') c = '2' d = 2 if c == d: print('They are equal') else: print('They are not equal')

A tryand except block can be used to handle error in code block. Code which may raise an error can be written in the try block . During execution, if that code block raises an error, the rest of the try block will cease executing and the except block code will execute.

Control Flow
Lesson 1 of 2
1. 1
Imagine waking up in the morning. You wake up and think, “Ugh, is it a weekday?” If so, you have to get up and get dressed and get ready for work or school. If not, you can sleep in a bit lon…
2. 2
In order to build control flow into our program, we want to be able to check if something is true or not. A boolean expression is a statement that can either be True or False. Let’s go back to the…
3. 3
Now that we understand what boolean expressions are, let’s learn to create them in Python. We can create a boolean expression by using relational operators. Relational operators compare two it…
4. 4
Before we go any further, let’s talk a little bit about True and False. You may notice that when you type them in the code editor (with uppercase T and F), they appear in a different color than var…
5. 5
“Okay okay okay, boolean variables, boolean expressions, blah blah blah, I thought I was learning how to build control flow into my code!” You are, I promise you! Understanding boolean variabl…
6. 6
Now that we’ve added conditional statements to our toolkit for building control flow, let’s explore more ways to create boolean expressions. So far we know two relational operators, equals and not …
7. 7
Often, the conditions you want to check in your conditional statement will require more than one boolean expression to cover. In these cases, you can build larger boolean expressions using _boolean…
8. 8
The boolean operator or combines two expressions into a larger expression that is True if either component is True. Consider the statement Oranges are a fruit or apples are a vegetable. This st…
9. 9
The final boolean operator we will cover is not. This operator is straightforward: when applied to any boolean expression it reverses the boolean value. So if we have a True statement and apply a n…
10. 10
As you can tell from your work with Calvin Coolidge’s Cool College, once you start including lots of if statements in a function the code becomes a little cluttered and clunky. Luckily, there are…
11. 11
We have if statements, we have else statements, we can also have elif statements. Now you may be asking yourself, what the heck is an elif statement? It’s exactly what it sounds like, “else if”. A…
12. 12
if, elif, and else statements aren’t the only way to build a control flow into your program. You can use try and except statements to check for possible errors that a user might encounter. The gen…
13. 13
Great job! We covered a ton of material in this lesson and you’ve increased the number of tools in your Python toolkit by several fold. Let’s review what you’ve learned this lesson: - Boolean expr…
1. 1
This lesson will help you review Python functions by providing some challenge exercises involving control flow. As a refresher, function syntax looks like this: def some_function(some_input1, som…
2. 2
in_range(num, lower, upper)
3. 3
movie_review(rating)
4. 4
twice_as_large(num1, num2)
5. 5
large_power(base, exponent)
6. 6
divisible_by_ten(num)
7. 7
max_num(num1, num2, num3)
8. 8
over_budget(budget, food_bill, electricity_bill, internet_bill, rent)
9. 9
always_false(num)
10. 10
not_sum_to_ten(num1, num2)
11. 11
same_name(your_name, my_name)

## What you'll create

Portfolio projects that showcase your new skills ## How you'll master it

Stress-test your knowledge with quizzes that help commit syntax to memory 