With this Python tutorial, we aim to teach all basic to advanced level Python programming concepts to a large no. of aspirants in the most efficient way. We've organized this course in such a manner that you can learn Python with least efforts, without investing a lot of your time and finally be able to apply this knowledge to your live projects.

Python today stands amongst the top 5 most popular and practical programming languages as per the latest TIOBE Index. It is a multipurpose, high-level, object-oriented, interactive, interpreted and extremely user-friendly programming language. Being interactive means that you can type the code straight in Python console which then interacts with the interpreter for execution. It proposes a simple coding style which makes it the preferred language for everyone planning to begin his or her career in programming.

Python Tutorial - Developers Salaries 2017

Not only Python is the 4th most popular language as per TIOBE index but also the 3rd highest earning programming language. Please refer to the above developer's salaries chart.

Python has applications in a variety of areas be they are desktop apps, web apps, data mining or machine learning. You can make websites, create games, use it for web scrapping, robotics, and browser automation i.e. using Selenium with Python. And almost everything that any object-oriented programming language can do.

Python Tutorial - Learn Programming Step by Step

Getting Started With Python Programming.

Let's first get some background before you further dive into reading the Python tutorial. It is always propitious to know about the tool which you are planning to learn.

Python is a general-purpose programming language which began as a solution to automate system level tasks in its early phases. However, soon, it became quite famous due to its extensive application development support. It allowed creating websites with a backend, GUI tools using PyQt/Tkinter, predicting stocks using machine learning (libraries like scikit-learn), data analysis using Pandas modules and game development with PyGame.

Python is easy to learn, highly readable, and simple to use. It has a clean and english-like syntax which requires less coding and let the programmer focus on the business logic rather than thinking about the nitty-gritty of the syntax.

👓 Python - A Sneak View in the History.

It was a Dutch programmer, Guido Van Rossum, who wrote Python as a hobby programming project back in the late 1980s. Since then it has grown to become one of the most polished languages of the computing world.

What Led Guido to Create Python?

In his own words, Guido revealed the secret behind the inception of Python. He started working on it as a weekend project utilizing his free time during Christmas in Dec'1989. He originally wanted to create an interpreter, a descendant of the ABC programming language which he was a contributing developer. And we all know that it was none other than Python which gradually transformed into a full-fledged programming language.

How the Name Python Came About?

Guido initially thought the Unix/C hackers to be the target users of his project. And more importantly, he was fond of watching the famous comedy series [The Monty Python's Flying Circus]. Thus, the name Python struck his mind as not only has it appealed to his taste but also to his target users.

Summary of Known Python Releases.

Python Version Date of Release
Python v0.1.0 (The first Edition) 1990
Python v0.9.5 (Macintosh support) 2nd Jan'1992
Python v1.0.0 26th Jan'1994
Python v1.1.0 26th Jan'1994
Python v1.2.0 Apr'1995
Python v1.3.0 Oct'1995
Python v1.4.0 Oct'1996
Python v1.5.0 3rd Jan'1998
Python v1.6.0 (Latest updated version) 5th Sep'2000
Python v2.0.0 (Added list comprehensions) 16th Oct'2000
Python v2.7.0 (Latest updated version) 3rd Jul'2010
Python v3.0.0 3rd Dec'2008
Python v3.6.x (Latest updated version) Mar'2017 and continued.


🙄 Python Programming Silent Features.

➡ Code Quality.

Python code is highly readable which makes it more reusable and maintainable. It has broad support for advanced software engineering paradigms such as object-oriented (OO) and functional programming.

➡ Developer Productivity.

Python has a clean and elegant coding style. It uses an english-like syntax and is dynamically typed. So, you never declare a variable. A simple assignment binds a name to an object of any type. Python code is significantly smaller than the equivalent C++/Java code. It implies there is less to type, limited to debug, and fewer to maintain. Unlike compiled languages, Python programs don't need to compile and link which further boosts the developer speed.

➡ Code Portability.

Since Python is an interpreted language, so the interpreter has to manage the task of portability. Also, Python's interpreter is smart enough to execute your program on different platforms to produce the same output. So, you never need to change a line in your code.

➡ Built-in and External Libraries.

Python packages a large no. of the prebuilt and portable set of libraries. You can load them as and when needed to use the desired functionality.

➡ Component Integration.

Some applications need interaction across different components to support the end to end workflows. Onc such component could be a Python script while other be a program written in languages like Java/C++ or any other technology.

Python has several ways to support the cross-application communication. It allows mechanisms like loading of C and C++ libraries or vice-versa, integration with Java and DotNET components, communication using COM/Silverlight, and interfacing with USB devices over serial ports. It can even exchange data over networks using protocols like SOAP, XML-RPC, and CORBA.

➡ Free to Use, Modify and Redistribute.

Python is an OSS. You are free to use it, make amends in the source code and redistribute, even for commercial interests. It is because of such openness that Python has garnered a large community base which is continually growing and adding value.

➡ Object-oriented from the Core.

Python primarily follows an object-oriented programming (OOP) design. OOP provides an intuitive way of structuring your code, and a solid understanding of the concepts behind it can let you make the most out of your coding. With OOP, it is easy to visualize the complex problem into smaller flows by defining objects and how they correlate. And then we can form the actual logic to make the program work.


🤔Python Programming Domains.

➡ Web Application Development.

Python has the lion's share in the field of web development. Many employers look for full-stack programmers who know Python. And you can become one of them by learning frameworks (WAF) like Django, Flask, CherryPy, and Bottle which give extensive support for web development. All of these are developed using Python. These frameworks deliver essential features to simplify tasks related to content management, accessing backend database, and handling network protocols like HTTP, SMTP, XML-RPC, FTP, and POP. Some of the popular online products created in Python are Plone (Content Management System), Zope application server, Quixote web framework, and ERP5, an open source enterprise solution used in the aerospace field.

➡ Scientific and Numeric Computing.

Python has become the evident choice for working in Scientific and Numeric Applications. And there are multiple reasons for this advancement. First and foremost is that Python is a free and open source language. And it allows to modify and redistribute its source code.

Next, the reason of becoming it more dominant in the field of Scientific and Numeric is the rapidly growing number of specialized modules like NumPy, SciPy, Pandas, matplotlib, and IPython. All of these are available for free and provide a fair alternative to paid products like Matlab.

Hence, Python is becoming a leader in this field. The focus of Python language is to bring more productivity and increase readability.

➡ GUI Programming.

Python has some inherent qualities like simple and clean coding syntax as well as dynamic typing support. These work as the catalyst while developing complex GUI and image processing applications.

Python's clean syntax and a tremendous support of many GUI libraries (like wxWidgets, pyqt or pyside) made Programmers deliver graphics software like Inkscape, Scribus, Paint Shop Pro, and GIMP.

In addition to the 2D imaging solutions given above, Python is even propelling many 3D animation software like 3ds Max, Blender, Cinema 4D, Houdini, and Maya. These applications integrate with Python for automation to speed up their workflows and eliminate the need of doing them manually.

➡ Software Prototyping.

Python has many qualities that make it a natural choice of being used for prototyping. Firstly, since it is an open source programming language, so a large no. of users have followed and contributed to the open source. Further, the lightness, versatility, scalability, and flexibility of refactoring code in Python speed up the development process from the initial prototype.

Hence, Python gives you an easy-to-use interface to create prototypes. For example, with Pygame (a multimedia library), you can prototype a game in different forms, test, and tailor it to match your requirements. Finally, you can take clues from the selected prototype and develop it using languages like C++/Java.

➡ Professional Training.

Python is indeed the right programming language for teaching and training purposes. It can be a stepping stone for beginners to enter into the programming arena and even help them learn other languages as well.

Hence, there is a huge demand for professional trainers who can teach both basic and advanced level Python programming. You can impart training offline in a classroom or use tools like skype or hangout to do it online.

Why Should I Choose Python to Learn Programming?

✒️ Nonrestrictive Programming Syntax.

Python is the language that even a non-programmer can understand. It is a highly readable, problem-oriented language that lets you focus on writing the logic instead of getting into the syntax nitty-gritty.

Here is an example code of implementing an interest calculator. By looking at it, you can feel how easy it is to write and understand the code in Python.

print('Interest Calculator:')
amount = float(input('Principal amount ?'))
roi = float(input('Rate of Interest ?'))
yrs = int(input('Duration (no. of years) ?'))
total = (amount * pow(1 + (roi/100), yrs))
interest = total - amount
print('\nInterest = %0.2f' %interest)

✒️ No Explicit Declaration.

In Python, don't use types for declaring variables. You use them without specifying their type. Also, there is no need to use any separator like a semicolon to mark the end of a statement.

In Python, indentation replaces brackets to group a block of instructions. And you can use tabs or spaces to indent the code. However, Python enforces some rules (PEP 8) such as to use four spaces per indentation level. So, there are many such facets in Python which make learning simpler for beginners.

✒️ State of the Art OOP Support.

Object-Oriented Programming (OOP) comes built into the Python language. It lays down a model which derive solution by creating objects, defining relationships, and binding data. However, the procedural programming methodology takes on a top-down approach and solves one problem at a time while splitting it into smaller ones. On the other hand, OOP is a bottom-up problem-solving technique which seeks a blueprint of the solution at the onset and leaves implementation for the later.

Using classes, building inheritance and constructing objects are keys to developing yourself as a professional programmer. And you can easily do that in Python and produce better quality projects, quicker than in other languages.

Python lets you minimize the size of code you write and accomplishes more.

✒️ Powerful Debugging.

If you have a product in dev and QA logged a defect, then debugging is what you should be doing. However, if a customer has reported an issue, then debugging gets far more critical. Here also, Python leads the way by providing tools like pdb, pudb, and PyDebug that makes debugging experience easier than ever.

For example, the pudb tool can quickly guide a programmer to traverse through the code and nail down the problem.

It is a fact that most languages are working to improve their debugging tools. But with Python, they are only getting better.

How to Get Python Running on Your System?

💻 Install Python on Mac OS X and Start to Code.

➡ The latest version of Mac OS X is 10.13 (High Sierra) which has Python 2.7 pre-installed. Beginners can start to use Python 2 and learn to program. However, professional programmers should upgrade to Python 3.6.

➡ For installing Python on Mac, just go to the Download Python for Mac OS X page, select the desired package and click to download. Next, launch the downloaded package, follow the steps, and finish the installation.

➡ If you are a command line geek and love to use a console for routine system tasks, then run the following commands to install Python.

Firstly, open the terminal and install the HomeBrew package manager for Mac OS X.

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Enter the below command to check the Brew installation status.

$ brew --version

Now, use the Brew package manager to install Python 3.x.

$ brew install python3

➡ Installing Python with Brew also installs the PIP tool (pip3). It is a quick update manager to check out the available modules in the Python repository.

➡ Since now you have Python installed, it's time to start coding. But you would need an IDE for professional development. It would turn you more efficient and productive. We recommend the community version of PyCharm and Eclipse with PyDev. Both of these are free and with full of features. However, you can read our reviews of world's best Python IDEs and make a choice of your own.

➡ However, you can also choose to begin with IDLE, the default IDE that comes with Python. Or even use the Python console to run your first few lines of code. In Python, you can do a lot with a single line of code. For example, you can write a function which checks for odd no, call it with an input and print the outcome but all of that in one single line. Please see the code below.

print((lambda isOdd: isOdd(3))(lambda x: x % 2 != 0))

If you type the above line on a Python CLI, then it would just take an enter key to execute. However, if you are using IDLE to write this code in a script, then press F5 to run it. In either way, this simple one line of code would print "True" in its output.


💻 Install Python on Linux (Ubuntu) and Start to Code.

Ubuntu 16.04 has both Python 2 and Python 3 installed by default. However, you can double check if they are up to date or not using the apt-get commands.

$ sudo apt-get update
$ sudo apt-get -y upgrade

➡ Once the above process completes, check Python version with the following command.

$ python3 -V

# Output.

Python 3.6.1

➡ To manage available modules and libraries for Python, let’s install PIP.

$ sudo apt-get install -y python3-pip

➡ The PIP tool downloads new and updates existing packages you may like to use during the development. Here is the command to install the Python packages.

$ pip3 install <package_to_install>

# For example.

$ pip3 install numpy

➡ You can boost your programming experience by installing a few more packages and dev tools. Run the below command to add them to your Python installation.

$ sudo apt-get install build-essential libssl-dev libffi-dev python-dev

➡ You can also set up an isolated space on your system for Python projects. For this, install the venv module, it is a component of the standard Python 3 library.

$ sudo apt-get install -y python3-venv

➡ Now, you are all set to create environments. Go ahead and run the following commands.

$ mkdir environments
$ cd environments
$ python3 -m venv test_env

➡ Before you can use the <test_env>, you have to activate it first. The following command will do the activation for you.

$ source test_env/bin/activate

Your prompt will now a little different than the standard one.

(test_env) techbeamers@techbeamers:~/environments$

This prefix indicates that the environment test_env is currently active. And you can create programs to use environment’s settings and packages.

➡ We have our virtual env set up, let’s write a simple “Hello, World!” script. To do this, open up a command-line text editor such as vi and create a new file.

(test_env) techbeamers@techbeamers:~/environments$ vi world.py

The vi editor will open the text file in the terminal. Write the code given below. Press ":wq" to save and exit from the editor.

print("Hello, World!")

➡ Once you exit out of vi and return to the shell, let’s run the script.

(test_env) techbeamers@techbeamers:~/environments$ python3 hello.py

# Output

Hello, World!

To log out from the environment, type the command "deactivate" and it'll return to your original directory.


💻 Install Python on Windows and Start to Code.

➡ For installing Python on Windows, just go to the Download Python for Windows page, select the desired package and click to download. We recommend Python 2.7 as it is one of the most stable packages. Next, launch the downloaded package, follow the steps, and finish the installation.

➡ During installation, select the option "Install for all users" and use the destination directory (C:\Python27) as default.

➡ Next, open the "Start" menu and type "cmd" into the search box. Right click on the "cmd.exe" link and choose to run as an administrator.

➡ Change directory to "C:\Python27" and run the following command to set Python on the system's path.

setx PATH "%cd%;%path%;"

The above command (setx) will set Python path for all future instances of the cmd.exe, but not for the current one. So, you'll need to reopen the command window to use Python.

➡ Now, you are ready to write your first Python program on Windows. As we stated above, you must use a professional IDE for better development. However, here, we'll tell you to use IDLE that comes as the default editor for Python.

➡ From the "Start" menu, open "All Programs" and select "Python 2.7". Click on the "IDLE (Python GUI)" link to launch the editor.

➡ To start with IDLE, press CTRL+N to create a new file. Then, name it as "world.py" while saving using the CTRL+S.

➡ Place the following instruction in the newly created file.

print("Hello, World!")

Save the file and go to [Run >> Run Module] or press F5 to execute your first Python script.

Let's Write Your First Program in Python.

Usually, it is the "Hello, World!" program which every language recommends as a starting point to learn Programming. It is a simple program which prints the "Hello, World!" message on the standard output.

It obviously would be very trivial if we write it in Python, just one statement as print("Hello, World!"). Hence, we'll use the Interest Calculator program for illustration.

Program Description.

This program computes the interest accrued over the specified no. of years on the principal amount with one year as a fixed value for the compound interval.

Program Source Code.

print('Interest Calculator:')
amount = float(input('Principal amount ?'))
roi = float(input('Rate of Interest ?'))
yrs = int(input('Duration (no. of years) ?'))
total = (amount * pow(1 + (roi/100), yrs))
interest = total - amount
print('\nInterest = %0.2f' %interest)

Let's Dissect the Program Step by Step.


In the first line, we are calling the print() function to display an informational message. It's same as printing like the "Hello, World!".


In the next three lines, we are using the following variables to store the input provided by the user.

amount -> It represents the principal amount borrowed.

roi -> It represents the rate of interest levied on the principal amount.

yrs -> It is the no. of years representing the borrowing period.

Also, you must note here that we are using the Python's input() function to prompt the user for entering the values. Furthermore, you can observe that we've used Python's conversion operators (int() and float()) in this code.

int(value) -> It converts any value to a plain integer.

float(value) -> It converts a value to a float type number.

So far, we've covered the first four lines. Let's continue exploring the remainder of the program.


In the fifth line of code, we are using a variable called "total" to store the result of a complex assignment.

The total -> It represents the total amount to be paid after the borrowing period.

But this line is a little different from the previous ones. It is because the first line was an output statement and the next three were the simple assignment operations. Here, in the fifth line of code, we are computing the Total amount including the Interest part with the help of the following formula.

Python Tutorial - Compound Interest Formula

Python Tutorial - Compound Interest Formula

Further to add, this assignment involves the use of the following Python's arithmetic operators and functions.

+ Addition -> It adds numbers on either side of the operator.

* Multiplication -> It multiplies numbers on either side of the operator.

/ Division -> It divides left-hand operand by right-hand operand.

pow(X, Y, Z) -> It determines [X to the power Y]. If Z is available, then it'll return X to the power Y, modulo Z.


In the sixth line, we are using Python's subtraction operator (-) to calculate the interest amount.


Finally, there is a print statement displaying the interest amount. Since it is a floating value, so the print() function will display the full number by default. Hence, we are using the floating point format specifier "%0.2f" in the print() function so that we can limit the printing up to two decimal points.