1 00:00:04,960 --> 00:00:10,270 Well, in this video, I'm going to talk with you about some of the basic control structures that we have 2 00:00:10,270 --> 00:00:21,050 in Python and the syntax that Python uses for indicating different pieces of code. 3 00:00:21,050 --> 00:00:25,490 The learning outcomes for this video are for you to be able to write basic python control structures. 4 00:00:25,490 --> 00:00:32,180 Understand the python block syntax. No, the standard practice for using whitespace in Python. 5 00:00:32,180 --> 00:00:38,990 One of the key concepts here is that Python uses whitespace to detect blocks such as the bodies of loops or conditionals. 6 00:00:38,990 --> 00:00:45,860 Unlike other languages such as Java, JavaScript, HPC, etc., all use squiggly braces. 7 00:00:45,860 --> 00:00:56,090 Python uses indentation as syntactically significant indicator of what a block is, such as the body of a loop. 8 00:00:56,090 --> 00:01:03,830 So in the first Python intro video, we saw a for loop in the for loop iterates over it iterable. 9 00:01:03,830 --> 00:01:11,060 So you the, the, the syntax is that we have for ie the variable name in. 10 00:01:11,060 --> 00:01:17,540 Range of music range here, but this is the iterable expression. 11 00:01:17,540 --> 00:01:27,770 That's something that we can we can loop over and then within within that loop, we are going to we're gonna print and we're using an F string. 12 00:01:27,770 --> 00:01:32,630 Remember the F string that says use variables in the string. 13 00:01:32,630 --> 00:01:41,480 And so we are we're printing out the iteration number through each iteration of this loop. 14 00:01:41,480 --> 00:01:46,360 And then at the end of the loop, we're gonna print done, and that's gonna happen once. 15 00:01:46,360 --> 00:01:52,440 Because whitespace still limits blocks. 16 00:01:52,440 --> 00:02:00,400 The colon and the and the indentation, they indicate that we're in a new block. 17 00:02:00,400 --> 00:02:06,200 And then when the indentation stops and it goes back out to the same level. 18 00:02:06,200 --> 00:02:12,220 As the for loop started, that indicates the end of the block. 19 00:02:12,220 --> 00:02:17,710 So, as I said, the python block begins with a colon at the end of the line. 20 00:02:17,710 --> 00:02:26,020 And there's several different python keywords that. Are something that can start a block the if family f. 21 00:02:26,020 --> 00:02:36,610 Else L.F., the loop's foreign while and then the keywords for defining functions and classes, def and class block contents indented one level. 22 00:02:36,610 --> 00:02:40,390 The standard practice here is to use force bases. 23 00:02:40,390 --> 00:02:47,830 Jupiter, along with most modern python editing environments, default their configuration to force spaces for you automatically. 24 00:02:47,830 --> 00:02:51,970 But this convention, while Python does not strictly mandate this. 25 00:02:51,970 --> 00:02:58,700 All it mandates is that you are consistent. You can't say mixed tabs and spaces in the same file. 26 00:02:58,700 --> 00:03:03,670 This almost universally standard python practice is to indent with four spaces 27 00:03:03,670 --> 00:03:12,040 and then the block ends when the indentation returns to the previous level. 28 00:03:12,040 --> 00:03:17,410 You can also have comments in Python, a comment begins with a hash and continues until the end of the line. 29 00:03:17,410 --> 00:03:24,700 You can have a car line where all it is is a comment. You can also put a comment at the end of a line that contains some code. 30 00:03:24,700 --> 00:03:25,990 When we're writing Jupiter notebooks, 31 00:03:25,990 --> 00:03:34,360 we're going to put a lot of the discussion and the explanation in markdown cells in the Jupiter notebook rather than in comments. 32 00:03:34,360 --> 00:03:39,040 But comments are very useful when you're when you start writing Python scripts. 33 00:03:39,040 --> 00:03:42,970 They're also useful when you want when you want to write. 34 00:03:42,970 --> 00:03:50,860 Just really briefly, why a particular line in one of your code cells is working the way that it's working? 35 00:03:50,860 --> 00:03:54,370 The if statement is structure. 36 00:03:54,370 --> 00:03:58,180 It works like the fourth statement in terms of how the blocks work. 37 00:03:58,180 --> 00:04:03,040 And we open with if we don't need any parentheses, we have F and we have an expression in this case, 38 00:04:03,040 --> 00:04:13,150 we're gonna say if X is greater than or equal to 10, then we're one to print big if Elif is the python else. 39 00:04:13,150 --> 00:04:20,200 If you can have as many of these as you want and if you don't have to have one, you don't have to have an else either. 40 00:04:20,200 --> 00:04:28,090 But it's not else F or else, if it's just L.F. e-Life is the python syntax for else F. 41 00:04:28,090 --> 00:04:33,460 So if it's not greater than 10 but it is greater than or equal to five, it's going to print medium. 42 00:04:33,460 --> 00:04:37,780 And that's the one we're actually going to run in this case because X is equal to five. 43 00:04:37,780 --> 00:04:45,940 And then finally. Else we're going to print small. So in Python there are several things that are considered false. 44 00:04:45,940 --> 00:04:54,290 For the purpose. Most for the purposes of. Of an if statement. 45 00:04:54,290 --> 00:05:02,900 The bout valued the boolean value false, which you write with an uppercase F, is considered false as is none, which is a special python value. 46 00:05:02,900 --> 00:05:07,520 That is the python's version of a no means no data here. 47 00:05:07,520 --> 00:05:15,650 Zero is false. Empty containers, empty lists, sets, tuples and empty strings are all also false. 48 00:05:15,650 --> 00:05:21,980 Most other things are true. But those are the. 49 00:05:21,980 --> 00:05:26,600 Those are the. That's how ifs work in Python. They aren't strict like in Java. 50 00:05:26,600 --> 00:05:30,220 It has to be a boolean python does not require it to be a billion. 51 00:05:30,220 --> 00:05:38,990 It requires to be something that can be converted to a boolean. And then these are the things that. 52 00:05:38,990 --> 00:05:50,000 These are the things that Python converts to false when it's doing that boolean conversion a while loop iterates until a condition becomes false. 53 00:05:50,000 --> 00:05:56,240 I'd put a past statement here. The past is not part of the while loop. The past is just here to make the syntactically valid python. 54 00:05:56,240 --> 00:06:01,070 Because while loops can't be empty in general, Bloks cannot be empty. 55 00:06:01,070 --> 00:06:04,790 So passe is a python statement that does nothing. 56 00:06:04,790 --> 00:06:10,280 It's just needed when you need to make something syntactically valid. Maybe you're in the middle of testing some code. 57 00:06:10,280 --> 00:06:16,250 Maybe you're working on an F and you don't have all that figured out yet. So you just want to make one of the branches of the F. 58 00:06:16,250 --> 00:06:26,060 Do nothing. For now, you can just say pass. So to wrap up, Python provides the usual control control structures for a programing language. 59 00:06:26,060 --> 00:06:33,620 If for while blocks crucially are based on indentation and the standard there is to use for spaces. 60 00:06:33,620 --> 00:06:40,910 The hash sign starts a comment. There is some limitations to working with for loops. 61 00:06:40,910 --> 00:06:56,433 We're not going to use for work to working with, well, any loops in Python.