Introduction
What is Python?
Why should I learn it?
What does it do that other programming languages don't?
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
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?
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?
Here are a few other reasons why Python is so popular:
It's a high level language.
It's dynamic data type.
It's cross platform,
It has a huge community.
It has a large ecosystem of libraries, frameworks and tools,
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.
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.
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
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