Quick Links

Some statistics are showing Python has become the most popular programming language in the world. So what gives Python its universal appeal? We take a look at some of the features of this versatile and powerful language.

Python: It's Number One

Python is 30 years old and stronger than ever. At the time of writing it is the most used programming language in the world, having overtaken Java and C. That's all the more impressive because Python is billed as a general-purpose programming language. That's not always a good title to have. The old saying about being a jack of all trades but master of none might apply. Luckily, with Python, it doesn't apply.

Related: How to Install Python on Windows

Python is in use the world over in everything from web development to artificial intelligence, and from game development to data analytics. It is pre-installed on most Linux distributions and is available for all popular operating systems.

Python was written by Guido van Rossum as a hobby project, starting in December 1989. It was fully functional on Feb. 20, 1991, and was made generally available---as open-source---in 1992. Rossum chose the name Python because of his appreciation of a BBC television comedy series called Monty Python's Flying Circus. The creators of that show toyed with other titles including Owl Stretching Time and The Toad Elevating Moment. Had they settled on one of those, who knows what Python might have been called.

Python was designed with simplicity in mind. Rossum wanted the code to be English-like and easy to read, write, and understand. The syntax is simple and approachable for beginners, and seasoned programmers can come to Python from other languages without any struggle.

This underlying simplicity doesn't mean you can't solve complex problems with Python. The beauty of Python is you can harness all its under-the-hood power using its straightforward and accessible syntax. This makes Python ideally suited for rapid application development.

exam_score = 40 
    

course_work_score = 55

project_score = 40

if (course_work_score >= 40 and exam_score >= 60) or (project_score + exam_score >=70):

    print("You passed.")

else:

   print("You failed.")

The intent of this code should be obvious to anyone. Note the use of and and or to represent the logical operators. By contrast, C uses && and ||.

Interpreters and Compilers

Python is an interpreted language. You write your program source code into files, and the Python interpreter reads the files and executes the commands you've entered. Compiled languages such as C require additional steps between writing the program and running the program.

A piece of software called a compiler reads the program files and generates a binary file containing the low-level instructions that the computer understands. In other words, it takes what you've written---the C source code---and creates a copy of it that has been translated into the computer's native tongue. With a compiled program, it's the output from the compiler---the binary file---that is executed.

The advantage of a compiled program is that they execute faster than an interpreted program because the code doesn't need to be interpreted every time it is run. But the advantage of interpreted languages is the absence of the compiling step.  And compilation can be time-consuming. With Python, you can change a few lines of code and instantly run your program.

Python is easiest to work with in an integrated development environment (IDE), and there are many IDEs for Python---Idle was one of the first. Idle lets you type your code, type Ctrl+S to save it, then press F5 to run it. Your program runs in a Python shell. You can type any Python command in the shell, and have it executed for you immediately. This gives you the classic read, evaluate, print loop, or REPL, which aids development.

This tiny program defines a string, adds some numbers together, then prints the total.

geek_string = "This is an ex-parrot"
    

print("Total = ", 4 + 5 + 6)

A tiny two line program in Python

Saving the file and pressing F5 executes the program. It prints the total and exits. You're left at the Python shell prompt. The string isn't used in the program, but you can still refer to it in the shell by using the print command on the shell command line.

The output of a Python program in the Python shell

Checking the values of variables after your program completes can give you valuable insights into what was happening inside your code.

Python's Unique Language Design

Python might be designed for ease of reading and speed of learning, but it packs real power too. It fully supports object-oriented programming (OOP). OOP lets you model real-world items and the relationships between them as objects within your programs. Classes define the characteristics of objects and can contain functions that objects of that class can use.

You can think of a class as a sort of template, and objects are created in their image. Classes can be derived from existing classes and can inherit the properties of the original class. There's a lot more to OOP, but suffice to say that it is a tremendously powerful way to model objects and data within applications. Many other programming languages support OOP principles, but Python's simplified syntax makes its implementation one of the more accessible.

Python supports all of the usual execution flow controls such as if branches, while and for loops, match statements (similar to switch in other languages) and repeated sections of code can be defined as functions.

One quirk of Python is that whitespace is meaningful. Most other languages completely ignore the whitespace in your source code. Python uses indentation to indicate which block of code the indented text belongs to. Indentation replaces the curly brackets most other languages use. The prescribed amount of indentation is 4 spaces per tab, but as long as an indent is one space or more, Python will work out which block your line of code belongs to.

price = 100 
    

disposable_income = 95.5

no_deal = "You can't buy that item."

if price > disposable_income:

    print("Too expensive!")

    print(no_deal)

Running this program gives this output.

Example output from a program with an indented conditional block

Both lines in the indented block are printed because they are logically grouped together by their indentation.

You may have noticed that all variable definitions---known as identifiers in Python---start with the name of the variable, not a type indicator such as int, char, or float. Variables in Python are dynamically typed. You don't need to specify what type of data the variable will hold. Python figures it out at runtime.

You also don't need to mark the end of a line with a semicolon ";" or any other special character. This gives your code a more natural appearance and keeps it from looking cluttered.

The Standard Library and Other Libraries

Programming means achieving some end result by telling the computer what to do---in the vocabulary of the language you're programming in---so that it produces the desired end result. By writing your own functions you can extend the capabilities and vocabulary of the language.

A collection of useful functions is called a library. Python comes with a Standard Library. This is a very large collection of functions grouped into modules. It provides modules for such tasks as interacting with the operating system, reading and writing CSV files, ZIP compression and decompression, cryptography, working with dates and time, and much more.

To use a function you must import the appropriate module.

import os
    

print("CurrentDir:", os.getcwd())

Importing a module in a Python program

To interlace with the operating system we import the os module. To check the current working directory we use the getcwd() function, which is contained in the os module.

If we save those two lines in a text file called "cwd.py", we can run it by calling the Linux python3 interpreter and passing the program name on the command line.

python3 cwd.py

Passing a program name to the Python3 interpreter

There are thousands of other libraries available for Python. Some are commercially available but by far the majority are free and open-source.

A Programming Language and a Scripting Language

When you write a shell script in Linux the first line of the script---called a shebang line---indicates which command interpreter should be used to execute that script. Typically, this will be bash :

#!/bin/bash

If you add the following shebang line to your Python program and make it executable, the shell will pass your script to the Python interpreter.

#!/usr/bin/env python3

That means you can write scripts in Python just like you do with bash commands. If we add the shebang line to our previous example we get:

#!/usr/bin/env python3
    

import os

print("CurrentDir:", os.getcwd())

Let's save this as "cwd-2.py" and use chmod to make it executable:

chmod +x cwd-2.py

Using chmod to make a python script executable

Now, to run the script we can call it directly by name:

./cwd-2.py

Running a python program as a script

In fact, Python can be used as a scripting language for use by other applications, and Python can be embedded and used to add internal functionality to programs written in other languages.

Python Is of the Moment

There are no hotter trends in the computer science and data engineering worlds than big data, cloud computing, and machine learning. And Python is right at the heart of these movements. Libraries exist that facilitate Python's position as one of the best development tools in each of these disciplines. Arguably, it holds the number one spot in several of them.

Even better, all of those open-source libraries are available to the home tinkerer. Fancy training a RaspberryPi to do facial recognition? Download the appropriate libraries---OpenCVface_recognition, and imutils for example---and away you go.

Interpreted, Not Limited

Python might be interpreted, but it executes quickly and scales well. It is used by industry leaders including Google, Facebook, Instagram, Netflix, and Dropbox.

In conjunction with a web framework such as Django, it has been used to create some of the most-visited and highest-traffic websites in the world, such as YouTube, Instagram, Spotify, and Dropbox.

There are many online resources to help you learn Python, like W3Schools' tutorial. Hopefully, this quick run-through of some of Python's interesting features will whet your appetite to check them out.

Related: What Is Encryption, and How Does It Work?