Python Architecture
Let’s now talk about Python architecture and its usual flow –
i. Parser
It uses the source code to generate an abstract syntax tree.
ii. Compiler
It turns the abstract syntax tree into Python bytecode.
iii. Interpreter
It executes the code line by line in a REPL (Read-Evaluate-Print-Loop) fashion. On Windows, when you want to run the Python interpreter in the shell, you can type the following:
$python
Python Constructs
i. Functions
A function in Python is a collection of statements grouped under a name. You can use it whenever you want to execute all those statements at a time. You can call it wherever you want and as many times as you want in a program. A function may return a value.
ii. Classes
As we discussed earlier, Python is an object-oriented language. It supports classes and objects. A class is an abstract data type. In other words, it is a blueprint for an object of a certain kind. It holds no values. An object is a real-world entity and an instance of a class.
iii. Modules
A Python module is a collection of related classes and functions. We have modules for mathematical calculations, string manipulations, web programming, and many more. We will discuss Python Module in detail in a later lesson.
iv. Packages
Python package is a collection of related modules. You can either import a package or create your own.
v. List
You can think of a list as a collection of values. Declared in the CSV (Comma-Separated Values) format and delimit using square brackets:
Notice that we do not declare the type for the list either. A list may also contain elements of different types, and the indexing begins at 0:
vi. Tuple
A tuple is like a list, but it is immutable (you cannot change its values).
This raises a TypeError.
vii. Dictionary
A dictionary is a collection of key-value pairs. Declare it using curly braces, and commas to separate key-value pairs. Also, separate values from keys using a colon (:).
viii. Comments and Docstrings
Declare comments using an octothorpe (#). However, Python does not support multiline comments. Also, docstrings are documentation strings that help explain the code.
#This is a comment
“““
This is a docstring
”””
Python has a lot of other constructs. These include control structures, functions, exceptions, etc. We will discuss these in further tutorials.
Features of Python
The Python programming language is one of the richest languages. In this Python tutorial, we will discuss several features of Python:
i. Easy
Python is very easy to learn and understand; using this Python tutorial, any beginner can understand the basics of Python.
ii. Interpreted
It is interpreted(executed) line by line. This makes it easy to test and debug.
iii. Object-Oriented
The Python programming language supports classes and objects. We discussed these above.
iv. Free and Open Source
The language and its source code are available to the public for free; there is no need to buy a costly license.
v. Portable
Since it is open-source, you can run Python on Windows, Mac, Linux or any other platform. Your programs will work without needing to the changed for every machine.
vi. GUI Programming
You can use it to develop a GUI (Graphical User Interface). One way to do this is through Tkinter.
vii. Large Library
Python provides you with a large standard library. You can use it to implement a variety of functions without needing to reinvent the wheel every time. Just pick the code you need and continue. This lets you focus on other important tasks.
6. Python Frameworks
i. Django
Python Django is a free and open-source framework written in Python and is the most common framework for Python. It allows you to create database-driven websites. It follows the DRY Principle (Don’t Repeat Yourself). This is a design philosophy that keeps code simple and eloquent.
Popular websites like Instagram, Mozilla, and Disqus make use of it.
ii. Flask
Like Django, Flask is a web framework written in Python itself. It is a micro framework because it does not need certain libraries and tools. It also does not have form validation or a database abstraction layer. However, you can make use of extensions to add extra features.
iii. Pyramid
Pyramid is another web framework. It is neither a mega-framework that would make decisions for you nor a micro-framework that wouldn’t force decisions. It gives you optimal liberty of your project.
iv. Tornado
Another open-source web framework, Tornado is written in Python Language. It is noted for its excellent performance and scalability.
v. Bottle
Like Flask, it is a micro-framework for Python. It is used for web development. Bottle is known for its speed, simplicity, and lightweight. A single file can run both Python 2.5+ and 3.x.
vi. web2py
Written in Python, web2py is another open source web framework. It emphasizes on rapid development and follows an MVC architecture. MVC stands for Model View Controller.
vii. NumPy
NumPy is an open-source framework for Python. We use it for scientific computing. It supports large multidimensional arrays and matrices, and functions to operate on them.
viii. SciPy
SciPy is a Python library that you can use for scientific computing. It has modules for linear algebra, interpolation, fast Fourier transform(FFT), image processing, and many more. It uses multidimensional arrays from the NumPy module.
ix. Pylons
This is a deprecated framework, which means it is no longer recommended. It is a web framework and is open source as well. It makes extensive use of third-party tools.
Flavors of Python
Now, let’s take a look at major Python implementations –
i. CPython
This is the most widely accepted implementation of Python. It is written in the language C, and is an interpreter.
ii. Jython
Jython is a Python implementation written in Java. A Jython program can import any Java class. It compiles to Java bytecode.
iii. IronPython
IronPython is implemented in C#. It can function as an extensibility layer to application frameworks written in a .NET language.
iv. Brython
Brython stands for Browser Python. It is an implementation of Python that runs in the browser.
v. RubyPython
It acts as a bridge between the Python and Ruby interpreters. It marshals data between Python and Ruby virtual machines.
vi. PyPy
Interesting to know how PyPy is Python implemented in Python. This makes it faster and easier to experiment with. However, the standard implementation is CPython.
vii. MicroPython
This is an implementation of Python meant to run on a microcontroller. It uses a MicroPython board that runs MicroPython on bare metal.
Let’s move ahead in this Python tutorial and learn file extensions of Python.
File Extensions in Python
- .py –The normal extension for a Python source file
- .pyc- The compiled bytecode
- .pyd- A Windows DLL file
- .pyo- A file created with optimizations
- .pyw- A Python script for Windows
- .pyz- A Python script archive
Python Applications
Python is easy to pick-up even if you come from a non-programming background. You can look at the code and tell what’s going on. Talking of Python applications, some of the cool things that you can do with Python are –
- Build a website
- Develop a game
- Perform Computer Vision (Facilities like face-detection and color-detection)
- Implement Machine Learning (Give a computer the ability to learn)
- Enable Robotics
- Perform Web Scraping (Harvest data from websites)
- Perform Data Analysis
- Automate a web browser
- Perform Scripting
- Perform Scientific Computing
- Build Artificial Intelligence
Python isn’t limited to these applications. If you’ve ever used services from brands like YouTube, Dropbox, and Netflix, then you’ve been a consumer of Python. The search-engine Google also made great use of the language in its initial stages.
When writing code in Python, you need fewer lines of code compared to languages like Java. This high-level language is also open-source and free. Going by the TIOBE Index, it is among the major programming languages with the fastest growth. This makes a career in Python a great choice.