Python Jumpstart by Building 10 Apps Transcripts
Chapter: App 2: Guess that number game
Lecture: Concept: Shape of Python code (blocks and suites)

Login or purchase this course to watch this video and the rest of the course contents.
0:00 A core concept of this application is to understand the shape of a Python program. So far, until very recently,
0:08 we've been just writing straight top to bottom code, with no blocks, no functions, no conditionals or loops
0:16 or anything that has to be disambiguated in that sense. And now, what I want to focus on is this concept of a shape of the Python program.
0:25 Everything you see on the screen that is in the square, the gray square, the blue squares, the purple squares, those are all separate code blocks,
0:33 sometimes called code suites in Python that are executed in some particular manner. The blue blocks are functions
0:40 that are executed when the functions are called, the purple blocks are if or else blocks
0:45 that are executed depending on whether the argument is batch or something else. The key thing that defines code blocks in Python
0:53 which makes it quite unique in this regard, is white space. Many C derived languages use curly braces, think of Javascript,
1:02 C#, Swift, those types of languages, they all use curly braces and when you open the curly brace that begins a block of code,
1:10 and when you close curly brace that block code is now done. It doesn't work this way in Python, it's all about the indentation,
1:16 so you can see the gray block which is just the overall program and we have two functions we are defining, we have def main and we say colon,
1:26 and then we indent all the body of this function. And that body is made up of those two blocks in there,
1:32 there is two purple blocks sort of the if else statement. Then we unindent and we define another run function
1:37 the details don't matter, we say colon and indent again and that's the body of the function for a run.
1:43 So you've already seen previously that editors like PyCharm and other Python intelligent editors know about this shape,
1:51 they know about this code blocks and if you type if something colon enter, it will automatically indent and stay intended
1:58 until you unintend it manually. While it might seem a little challenging to use spaces to define a structure,
2:05 it turns out the editors know all about it and make it super easy. One more comment I should add while we are talking about indentation or white space,
2:13 tabs? tabs are not a good idea, in Python, Python does not like tabs. This white space should be actual the space character, not tabs,
2:24 now that doesn't mean that you don't press tab in your editor like in PyCharm if you hit tab it will indent but it actually just means
2:30 it's going to insert four spaces for you and many of the Python editors are like that. So if you are coming to Python from another language
2:38 that does not use significant white space like C++ or some of the C based languages
2:44 this could feel a little strange to you and it does take a week or so to really become super comfortable with this idea but once you do
2:52 it's very natural and it's a lovely way to program but I know that some of you out there you are thinking WOW!
2:59 this is really different and to you I say just give it a try, use a nice editor and you will start to love it right away.
3:06 if this feels totally natural and good to you, well then you are going to love Python right from the beginning.

Talk Python's Mastodon Michael Kennedy's Mastodon