Python: The Big Picture

Python is a general‑purpose and high‑level programming language. 

Algorithms + Data structures = Programs

Python is an interpreted programming language.

In languages like C and C ++, whitespace doesn't actually have a significant meaning. In Python, however, related blocks of code are grouped based on how far they are indented, making the whitespace quite significant. 

Python is a multiparadigm programming language. It supports structured programming, object‑oriented programming, and functional programming.

Python is a dynamically typed programming language - the type of a variable can change over the lifetime of that variable and type checking happens at runtime. Most statically typed languages are compiled languages

Some of the Python principles (from Python Enhancement Proposals, PEP 20 - The Zen of Python):

  • Beautiful is better than ugly
  • Explicit is better than implicit.
  • Readability counts
  • Errors should never pass silently.
  • Unless explicitly silenced.

Pros & Cons

  • Comprehensive Standard Library
  • Community-driven
  • Third‑party libraries - Python Package Index, or PyPI is where people often publish their Python code to so it can be used by others

Python Drawbacks - 

  • Interpreted hence slow compared to languages like C, C++ or Go
  • Not Native resulting in high‑memory usage in several cases, and lacking a native security sandbox
  • Dynamic language - due to the absence of a compiler, errors primarily occur at runtime where they can be more difficult for developers to diagnose

Pip helps to install and uninstall Python packages, ensure we're using the right versions of third‑party libraries track our own dependencies and also by installing and uninstalling the dependencies of the packages we're installing into our project. 

The Pip tool comes installed by default with many Python distributions and installs. 

Installing packages with pip is as simple as executing pip install, followed by the package you want to install. 

We can track a group of Python packages as a package group. This allows us to install, uninstall, and otherwise manage the package group as a single unit. 

Python Frameworks:

API

  • Flask
  • Bottle
  • Pyramid

Website

  • Django
  • TurboGears
  • web2py

App (CMS, ERP)

  • Plone
  • django-cms
  • Mezzanine

Popular Third-Party Libraries

  • Data Science - NumPy, Pandas, Matplotlib, Tensorflow, Keras, Scikit Learn
  • Web Development -  Flask, Requests, Django, web2py
  • Images / Computer Vision - Pillow, Pygal, OpenCV, Mahotas
  • Applications - wxPython (GUI), PyGTK (GUI), Fire (CLI), Kivy (Mobile/Multi-touch), Pygame
  • GIS - Proj, PyProj

Python IDEs and Editors:
  • Pydev
  • Pycharm
  • Visual Studio Code
  • Spyder
  • Sublime
  • Vim
  • GNU/Emacs
Jupyter Notebook aids in interactive programming. It is a project that grew out of the Interactive Python interpreter, IPython.

PyScript.com is an online IDE from Anaconda that lets you create, run and host PyScript apps.

Python Package Index or PyPI is a repository of software that helps you find and install software developed and shared by the Python community. Package authors use PyPI to distribute their software.

References:

Core Python: Big Picture [Updated: Mar 2, 2021, Duration: 48m]

Python 3: The Big Picture

W3Schools.com/Python

Comments