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.
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
or to represent the logical operators. By contrast, C uses
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)
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
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
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.
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
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())
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
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.
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
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.
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
Now, to run the script we can call it directly by name:
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—OpenCV, face_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.
- › How to Check the Python Version on Windows, Mac, and Linux
- › Easily Understand Your Linux RAM Usage With Smem
- › DuckDuckGo’s Cheat Sheet Feature Is Awesome
- › What Is GPIO, and What Can You Use It For?
- › How to Validate the Syntax of a Linux Bash Script Before Running It
- › Why Is It Called the Raspberry Pi?
- › Logitech MX Master 3S Mouse Review: Muted Refinements
- › What’s New in Chrome 102, Available Now