[MUSIC] We'll start off talking about the features of Python that are very basic. That are common to basically all programming languages. Algebraic expressions, every programming language can parse algebraic expressions and process them. What we see down here in blue, the blue background. Those are some algebraic expressions that have been evaluated by Python. They've been typed into the Python shell interactively. So the three, greater than signs, those are the prompt. And so at the top 2+2 you type that in, you hit Enter. It returns four, it prints out four, and so on. So it has regular algebraic operations that you can use in these algebraic expressions. And there's nothing uncommon about this. So the shell can evaluate those. Also there are other functions besides the regular add, subtract, multiply, divide. There are few other built in functions, mathematical functions you can use. Here are a few of them, abs, A-B-S, absolute value. Min, find the min between a set of numbers. Max, so forth. So there are a pile of these mathematical functions that you can use inside your algebraic expressions. Boolean expressions. So Boolean expressions, they're similar to algebraic expressions except they return true or false. They evaluate to true or false. So you can see here two less than four is true. One greater than three is false. And so on. So there's greater than equal, equal is a comparison. Remember to distinguish equal equal from single equal, right? So a single equal is a variable assignment, x = 3. Where if you say x == 3 that's a comparison that evaluates to true or false. But these are Boolean expressions, you find these in all languages. They involve comparison operators. So greater than, less than, equal, not equal, less than equal, greater than equal, so forth usually involve comparisons. So, Boolean operators, Boolean meaning things that evaluate to true false. These are operators, basically they're and, or, and not, are the basic ones. There are other ones too but and, or, not, the logic operators. And these also evaluate to true or false. They return true or false, but their inputs are also true or false. Are also Boolean, right. So for instance here, take the and. If you look at that first line 2<3 and 3<4 and it returns true. So and in this case has two inputs. This is in fixed notation. So the and has two inputs. The thing on the left, and the thing on the right. The thing on the left evaluated to true two less than three. The thing on the right evaluated to true. And so, its result is true. So these operators and, or, and not, their inputs are Boolean, true and false. And their outputs are Boolean true and false. You can see at the bottom. Actually and, and or take two inputs, not just takes one. So if you look at not it just says not of three less than four. Three less than four is true, so not of that is false then and returns that. So that takes a single argument, but the other ones are double, or two arguments and they're in fixed notations. Where actually the not is pre-fixed notation. The word not is placed before the argument. But that's not how it is with and, and or. Variables. So like all, basically every other high-level language there are variables. And you can assign these variables to values. So, this is pretty straightforward, and note the syntax difference between this and C. Remember how C, every assignment you'd have to have a semicolon at the end right? Not here, you just write it. So variable types are not declared. That's another difference between this and C. So that a, you can say x equals three on the first line and you don't have to say, x is an int, x is afloat. It'll just use x as an int because three is an int. Interpreter determines the type by usage. Thank you. [MUSIC]