 Now in the supplementary material we actually have a lot to talk about there's a good hundred pages or so of material in there Really and that's all because Python is actually quite a complicated language Especially compared to Pigeon and even compared to JavaScript, which is a real-world language So very very briefly here's most everything we'll cover in that supplement first off truth value Just like in JavaScript where every object effectively has a truth value not just the Boolean value is true and false Well, the same is true in Python. We'll talk about those rules The logical relational and equality operators those are the operators like and or greater than less than equals to not equals We have to discuss those in a bit more detail Functions in Python can be declared to have special kind of parameters And then when we invoke a function we can supply their arguments in special ways And these special mechanisms are say how we can invoke a function with some variable number of arguments Just like we can in JavaScript A sequence in Python is a list or list like data type and a mapping in Python is a dictionary or dictionary like data type And in the supplement we'll go over the many different operations which you can perform upon sequences and mappings Then we'll talk about tuples sets ranges iterators and view objects These are all different kinds of collection objects a tuple for example is really just a list which is fixed Meaning you can't add remove or modify any of its items. The rest will explain and do course We haven't discussed all the different ways you can write number literals or string literals in Python There are a few different ways and then there are rules in Python for allowing us to deviate from the rules of strict indentation Like say you might have a very long function call where the arguments you want to spread them onto multiple lines There's a rule that allows you to do that We need to talk about number types because there's actually more than one number type It's not like in JavaScript where you just have one type of number There's actually a separate type for integers and floating point values and Then Python has a few additional handy constructs for doing control flow such as the foreign loop and a few other things can have else clauses on them and A Dell statement Dell short for delete is a statement beginning with observed word Dell Which we can use to remove things from lists and dictionaries and also remove attributes from objects and say remove variables from the current module A lambda expression in Python is oddly enough the equivalent in Python of writing a Function as an expression because we call in JavaScript We can write a function as either a statement just like we do with the def statement of Python Or we can actually write it as an expression that returns a new function object lambda is Python's equivalent It's unfortunately not as flexible and therefore nearly as useful as Function expressions in JavaScript and that mainly stems from the limitations of Python indentation syntax This is actually the one thing I find regrettable about the indentation syntax Also in the supplement we need to go over the few dozen or so classes and functions found at the built-ins module And then we'll explain exactly how the import statement works And then we have what are called packages which are basically bundles of modules and then there's variations of import With the reserved words from and also they're what are called relative imports And then there's this very neat way of creating lists and sets and dictionaries called Comprehensions will explain those Generators as we'll explain are effectively special kinds of functions Which suspend themselves in the middle of execution and then later get resumed Generator expressions are just a special way of creating generators The structuring is just a fancy term referring to this feature that allows us to conveniently assign items from collections from dictionaries and lists To variables, that's all it is really and then Python has what's called a with statement Which is mainly used in conjunction with files in short the most common use of with is it makes sure that when we open a file That we actually close it when we're done with it and then the bytes type That's effectively a data type which represents some sequence of bytes And a byte array is just a variant which is mutable the bytes type is immutable just like strings aren't mutable And then we will discuss all of the various methods found in the string class. There are many different useful methods there And then finally at the very end we'll discuss made of classes, which are really a very kind of obscure feature of Python They're really very weird basically imagine a class for defining the creation of classes They are really not used very often because they are really kind of weird, but we will cover them for completeness sake And so that's everything pretty much will cover in the supplement It's not light reading, but it's as short as I could make it and all of that though including what we've already covered in this lecture That's all just the language Python proper the rules of its syntax and semantics and practice though When you write actual Python code you're going to need a lot of stuff found in Python standard libraries Python standard libraries are really quite extensive. First off you have these three modules one called math one called sys and one called os Those are a good place to start Math obviously has stuff for doing some basic math like you say trigonometry The sys module sys short for system includes things having to do with getting information about the system environment and os somewhat related has to do with the operating system environment and Then beyond those three you'll want to learn how to use regular expressions in Python Regular expressions if you don't recall are a tool for doing complex search and replace operations and strings and Very importantly, you'll want to figure out how to do input and output on the console how to work with the files But Python calls pickles shills and marshaling that all has to do with Storing Python objects in a persistent state that is in some database or in a file and then retrieving them loading them in your program You'll want to learn about how to deal with sockets for networking how to do web stuff like make an HTTP request Maybe deal with FTP and email You'll want to learn how to use some library to interact with a database and there are libraries for doing graphical user interfaces GUIs one popular one is called WXWitches There's another one called QTE and a really ugly old one called DeKinter And then if you really want to get advanced Python or at least see Python has a feature that allows you to create a Python module partly in C code This is something you would do generally for efficiency reasons because Python is not particularly good at say number crunching C does that much more efficiently So that might be something you wish to learn how to write a C extension for Python though Of course, it's something you probably learn after learning C itself, which we'll do later