 When you write a loop in Python, what happens under the hood actually is it sends a signal to other engineers in your office. So they come around to critique you for not using vectors happen to me multiple times in a row. What can I say? It's a language like any other language. It's just a tool. Let me read you from the Zen of Python. There should be one and preferably only one obvious way to do it. Which is why we have three different versions, 12 different ways to install them and 80 different frameworks for the same thing. Easy install, anaconda, conda, pip, homebrew, different locations, slash framework, something. It's a jungle. To be fair, a native habitat of a Python reads like English language. If you is with it or you is not with it. No curly braces anymore, like when I was 15. UW SGI. You have no idea how it works before reading the docs. Junicorn, Mott, WSGI, Django, template engines. Where would Web 2 be without Python? Imagine YouTube was written in Python. Oh, it is. Well, that changes something. We started doing things on the Flask server on a hackathon. And what can I say? It's running in production since two years. If the timestamp in the SQL Alchemy is in the right format. Runtime errors are a pain, a pain, pain. When you do a global pip install, it's like you just added kilograms of weight to your machine. Don't ask what Python can do for you. Ask what you can do for Python. Let me get my list. I never took the time to learn how packaging works in Python. That's why they send me on a crash course to UPS. Now, whenever things get funky with our modules, when we deploy on a CERN Fusion Reactor, they know it's me. You do from module import object and things are good. You do import package.module as object, things are good. You do from module import all, everything burns. When dependencies don't work, that's when the fun begins. I usually tell my students to pivot their idea then. So let's, for example, start a new project. You just make a virtual environment then. Virtual Enf or PIP Enf or PyEnf or Conda, easy install. Best to use Venf though. We use Virtual Enf. Let me find the cheat sheet. And behold, if you need a Python 2 module, then you can just start all over. New idea, I guess. Learning to code Python and moving to new language then. It's like learning to ride a bike and shifting towards an Airbus. You'll have to get rid of the training wheels, wheels, PIP wheels. PyQT is a good option for building GUIs if you don't have any other option. Multithreading is for everyone, but not everyone is meant for multithreading. Python is not meant for multithreading. No, we're not going to talk about the GIL. It's an unwritten rule. Wasn't it changed in Python 3.8? Yeah, we have multiple GILs now. It's called POP, Pickle Over Pipes. Oh, no, I did it. Python is jack of all trades. Good at all of them. Accept production code. Accept in the way we use it. We know how to write efficient production code in Python, which is basically C. Jython. Just write it in C and wrap it in Python. I want to see you struggle. Python question number one. How to swap numbers. Question number two. How to get rid of Python versions. Sometimes we do competitions on who can write the longest comprehension and sometimes we do it in our production code and sometimes we don't call it a competition, but just work. If every variable is passed by reference, you might just use globals everywhere. Do you know why it's called Python? Because it's a sneaky language. Jokes aside, it's because of Monty Python. Because it's a joke. Language. Oh, because that one supports version 2.6 or 3.1, but not 2.7 or 3.0. But not. Or because if that makes sense. Which pip? Which pip 3? Which Python? Which Python 3? Point 11. Which tell me where is Python? Look at this package. Oh, it's for Python 2. Alright, let's have a different idea then. Yeah, it's not the best to start, but it's the best to know eventually when you want to do machine learning.