Skip to content

Introduction

I'm going to answer the top 3 questions people ask about Python

What is Python?

Why should I learn it?

What does it do that other programming languages don't?


Python is the world's fastest growing and most popular programming language, not just amongst software engineers, but also amongst data analysts, mathematicians, scientists, accountants, networking engineers and even kids. Because it's a very beginner friendly programming language and easy to learn and understand.

So people from different disciplines use Python for a variety of different tasks, such as data analysis and visualization, artificial intelligence and machine learning, application development, web development, automation and so on.

In fact automation is one of the big use case of Python amongst people who are not software developers. If you constantly have to do boring or repetitive tasks, such as copying files and folders around, renaming them, uploading them to a server, you can easily write a Python script to automate all that and save your time. And that's just one example. If you continuously have to work with excel spreadsheets, PDF's, CSView files, download websites and parse them, you can automate all that stuff with Python.

So you don't have to be a software developer to use Python. You could be an Analyst, Accountant, Mathematician, or a scientist, and use Python to make your life easier. So Python is a general purpose language.


Now if you have some programming experience you may say, we can do all this stuff with other programming languages, so what's the big deal about Python?

Here are a few reasons:
With Python you can solve complex problems in less time with fewer lines of code. Here's an example. Let's say we want to extract the first three letters of the text Hello World.

This is the code we have to write in

C# - str.Substring(0:3)

JavaScript - str.substr(0:3)

Python - str[0:3] 

See how short, clean and elegant the language is? And that's just the beginning. Python makes a lot of trivial things really easy with a simple yet powerful syntax.

Here are a few other reasons why Python is so popular:

It's a high level language. It’s a programming language which is closer to human language rather than machine language. You don't have to worry about complex tasks such as memory management, garbage collection etc.

It's dynamic data type. You don't have to declare data type of a variable.

It's cross platform, which means you can build and run Python applications on Windows, Mac,and Linux.

It has a huge community. so whenever you getstuck, there is someone out there to help.

It has a large ecosystem of libraries, frameworks and tools, which means whatever you wanna do, it is likely that someone else has done it before because Python has been around for over 20 years.

So in a nutshell, Python is a multi-purpose language with a simple, clean, and beginner-friendly syntax. All of that means Python is awesome.

Technically everything you do with Python you can do with other programming languages, but Python's simplicity and elegance has made it grow way more than other programming languages.

That's why it's the number one language employers are looking for. So whether you're a programmer or an absolute beginner, learning Python opens up lots of job opportunities to you.


Definition

Python is a high level, general purpose, interpreted, object-oriented programming language.

Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines than possible in other languages.

High level language- It’s a programming language which is closer to human language rather than machine language. Python is Interpreted language- It is processed at runtime line-by-line by the interpreter. OOPS- is a programming paradigm based on the concept of objects. Objects are instance of class which consists of data and methods.


History

Python was conceived in the late 1980s, and its implementation began in December 1989 by Guido van Rossum at Centrum Wiskunde & Informatica (CWI) in the Netherlands as a successor to the language ABC. Van Rossum chose Python as a working title for the project, being a big fan of Monty Python's Flying Circus.


MSTR

Van Rossum is Python's principal author, and his continuing central role in deciding the direction of Python. Python 2.0 was released on 16 October 2000.
Python 3.0 a major, backwards-incompatible release, was released on 3 December 2008 after a long period of testing.
Van Rossum wrote in 1996, Over six years ago, in December 1989, I was looking for a "hobby" programming project that would keep me occupied during the week around Christmas. My office would be closed, but I had a home computer, and not much else on my hands. I decided to write an interpreter for the new scripting language I had been thinking about lately: a descendant of ABC that would appeal to Unix/C hackers.


Philosophy

The core philosophy of the language is summarized by the document The Zen of Python, which includes aphorisms such as:

  • Beautiful is better than ugly
  • Explicit is better than implicit
  • Simple is better than complex
  • Complex is better than complicated
  • Readability counts

Rather than requiring all desired functionality to be built into the language's core, Python was designed to be highly extensible.
To describe something as clever is not considered a compliment in the Python culture.
Python's philosophy is in favour of "there should be one—and preferably only one—obvious way to do it".

dynamic name resolution (late binding), which binds method and variable names during program execution. Python is a multi-paradigm programming language: object-oriented programming and structured programming are fully supported. This design of a small core language with a large standard library and an easily extensible interpreter was intended by Van Rossum from the start because of his frustrations with ABC, which espoused the opposite mindset. Structured programming aimed at improving the clarity, quality, and development time of a computer program by making extensive use of subroutines, block structures, for and while loops.


Useful Packages and Libraries

  • Database - SQLAlchemy
  • Scientific - Numpy, SciPy, Visual Python, Python Bindings for R
  • Web Development - Django, Flask, Pyramid, web2py, TurboGears
  • Analytics - Pandas, scikit, keras, tensorflow
  • Visualisation and BI - Dash, Bokeh, Superset
  • Workflow - Airflow, openflow, Goflow
  • Game Development - PyGame
  • GIS (Geographic Information System) - GIS Web services
  • GUI - TkInter, PyGtk, PyQt
  • Audio/Music - pyAudio, Python Audio Tools
  • Image Manipulation - Python Imaging Library (PIL), pyqtgraph
  • Indexing and Searching - InformationRetrieval
  • Networking - asyncoro, Gevent, TwistedMatrix, RPyC, PyRO, HTTPLib2, Celery
  • Graph and Visualisation - Matplotlib, Plotly, ReportLab, Chaco, gnuplot.py
  • System administration - psutil
  • XML Processing - ElementTree, lxml, Amara