Python

Theory of Python

What is Python?

Python is a programming language, famous for having an easy-to-learn and English-like syntax. It features characteristics of being interpreted, high-level, and dynamically typed. The programming language encompasses programming paradigms of the types object-oriented, procedural, and functional.

  • Syntax refers to the structure and arrangement of words and characters, similar to words in a sentence.
  • Interpreted refers to the fact that the language’s instructions execute directly through an interpreter, without the need of compiling.
  • High-level programming languages are closer to the natural language, which make them easier to understand, write, and debug as opposed to low-level programming languages with machine code or assembly language.
  • Dynamically-typed refers to the type checking at runtime (when code executes), rather than at compilation (before running the program) in static languages.
  • Programming paradigms classifies the language’s methodologies:
  1. Object-oriented paradigms define programs through classes and objects.
  2. Procedural paradigms define programs through functions (procedures).
  3. Functional paradigms define programs through pure functions.
    – Pure functions are without side effects (anything outside the function that can affect it) as opposed to impure.

Development tools

The development tools for writing, testing, and executing of code within this series of Python tutorials are:

Integrated development environment (IDE) refers to a software (application), helping developers write and test as well as execute code.

Applications of Python

Python is a general language and applicable in a wide variety of applications and it has a vast community support as well as thousands of library modules. The following are the most popular application domains for Python.

Scientific and numeric computing

The superb mechanisms behind Python are phenomenal for numeric and scientific tasks. The language applies in many fields, such as mathematics, engineering, and science. It is also very popular in data analysis and data visualisation. Nowadays, Python is one of the most recommended programming languages in data science and artificial intelligence (especially machine learning).

Web and internet development

The applications of Python are widely used in web development. There are various libraries supporting the development of web platforms. The language supports multiple internet protocols and tools, such as JSON, XML, HTML, RSS feeds, email processing, HTTP, FTP, and many more. Currently, there are many large organisations that implement Python into their web development processes.

Business applications

The programming language also covers the domain of business applications. Its implementations are used within fully-manageable platforms that offer full organisational management. Such systems provide complete suite management and often called all-in-one management software. Common uses of Python in business applications are e-commerce platforms as well as enterprise resource planning software.

Software development

The usage of Python a a support language in software development is commonly used by developers. The programming language encompasses the development of test management, compilation and automation, control systems, and management tools. It also covers project management systems as well as bug logging and monitoring. .

Desktop GUIs and mobile apps

Python also applies in graphical user interface and mobile app development. There are many libraries that are offer ease and flexibility (lightweight apps are quick to build and function as indented) in the creation of interactive and multitouch applications. The programming language can also provide cross-platform functionality.

Education

Within education, Python is one of the most popular choices – whether as a starting or more advanced point. Python is very straightforward and easy to learn, that being having a syntax close to the English language and an extremely supportive community with an abundance of free educational materials. As such, Python is widely used as a first learning language by most organisations.

Libraries and Frameworks

Libraries help programmers develop code often faster and more efficiently, and are used in many different fields. A library is a collection of methodologies. These methodologies contain bundles of code that help with specific tasks, without the need of writing the code from scratch. The following are some of the most commonly used libraries.

Scientific and numeric

Math offers many mathematical functions.
Statistics provides mathematical statistics tasks.

Numpy covers multi-dimensional arrays and matrices.
Pandas is used for data manipulation and analysis.

In machine learning:
Scipy provides tools for scientific computing.
Scikit-learn offers a variety of machine learning algorithms.
Tensorflow is used to train deep neural networks.

For visualisation, the most common choices are Matplotlib, Seaborn, Plotly, Bokeh, Folium, and GGPlot.

There are many more commonly used libraries, such as Theano, Pytorch, Keras, and many more.

Web development

Django provides a high-level Python framework for web development.
Flask is a micro web framework for web development applications.
Bottle is a very light, fast, and simple micro web framework.

Web2Py offers dynamic web content development.
CherryPy is a popular object-oriented web application framework.

BeautifulSoup is an HTML and XML document parser.
Requests can handle HTTP processes.
Scrapy is a web crawling framework offering web scraping.
FastAPI is a web framework for building RESTful APIs.
JSON is a Python package for working with JSON data.

Desktop and mobile

Tkinter (part of Tk GUI toolkit) provides tools for creating graphical user interfaces.
Kivy is a cross-platform framework for creating mobile and other user interfaces.

PyQt (part of GUI toolkit Qt) is a Python library for creating GUIs.
PySide (part of GUI toolkit Qt) is used for the creation of GUIs.

There are other popular frameworks and libraries for desktop and mobile, such as wxPython, PySimpleGUI, Remi, and PyGObject.

Automation

PyAutoGUI is a cross-platform GUI automation module.
Pywinauto automates Microsoft Windows GUIs.

PyBuilder is an automation tool targeting the Python applications ecosystem.
Pytest offers a full-featured testing tools.

Lettuce is a behaviour driver development framework providing execution of Python testing.
Robot is a test automation framework offering testing and test-driven development.


Next: Python Basic Fundamentals