• What is Python capable of?

python

All things have certain spheres of practical application (unless it's a work of art the sole purpose of which is to simply make people happy). The plane is needed for fast long-distance travel, the voice recorder - to record the audio information, a flashlight - to illuminate dark places.

Programming languages also have a certain range of tasks for the solution of which they are designed. In this article you will find out in the creation of what kinds of useful programs Python was used and what you personally can create with its help.

Instagram

Web-development

Python is very popular as a language for writing the server part of web applications and sites (back end). Despite the fact that the undoubted leader in this area for a long time was PHP, Python is steadily gaining popularity. Such useful frameworks as: Django, Flask, Pyramid, and less well-known - CherryPy and TurboGears, are helping with that.

If you decide to create your own project, roughly estimate its future complexity and the number of people who will use your site. If it's something simple and not high-load - you can do fine with Flask. But if it's a serious project, it'd be better to use Django.

Sites whose back end was written by using one of the specified frameworks:

Instagram is the most popular service in the world for posting photos. So far, more than 800 million people have been registered in Instagram and over 40 billion photographs have been published!

Pinterest is a site for sharing interesting information (mostly in a graphic format) and trading in a wide variety of areas - from origami to the copies of the Bronze Age weapons. The average number of active users is 175 million. The number of publications is over 50 billion.

Disqus is a service for exchanging comments that has extensive opportunities for integration into other websites. In 2018 this service is used by more than 750,000 sites and approximately 35 million people.

Bitbucket - is a site for storing the projects codes. It's slightly less popular than the legendary GitHub. 6 million developers and over 1 million teams are using this website.

Blender

Desktop and mobile applications

Python is used in web development so often that many mistakenly believe that it can be used strictly in this area. However, this is absolutely not true. With Python you can write full-fledged applications for your computer and the mobile devices. Such tools as PyQt and wxPython, as well as tkinter, which is included in the Python "core set", are very helpful in the desktop application development.

The most famous library in mobile development is Kivy. With its help you can create the cross-platform applications.

Programs that use Python:

BitTorrent versions up to the 6th one were written in this language. And only recently this program was rewritten in C++.

Ubuntu Software Center - is a kind of an "application store" for one of the most popular Linux distributions. It allows you to search, install, update and uninstall programs for the Ubuntu operating system.

Blender is the TOP-1 among free 3D editors. It includes tools for simulation, animation, rendering, post-processing of video, and the creation of interactive games. Python is used as means for creating tools and prototypes, logic system in games, as well as for importing/exporting files and automating tasks.

GIMP is a raster graphics editor that partially supports working with vectors. Python is used to write additional modules, for example, filters.

Also, Python was used during the creation of some very famous computer games - Civilization IV, Battlefield 2, World of Tanks.

TensorFlow

Artificial intelligence and data analysis

The previous spheres of usage might give the impression that Python is used only for entertainment - the creation of websites, games and other interesting but not especially important things.

I'd like to address this misconception - this language is very strong and in really serious things: neural network, machine learning, data analysis and many others. Even CERN uses Python to analyze data obtained from the nuclear research.

The following can help in the AI (artificial intelligence) development:

TensorFlow - is probably the most popular library for working with neural networks and machine learning. This Google development is widespread and the main API for working with the library is implemented for Python which is an obvious plus (there are also implementations for C++, Haskell, Java and Go.).

Less well-known tools that may also be useful in this area are Blocks, Keras, Deepy, NeuPy.

The most useful libraries in the data analysis field are:

SciPy is an open library of high-quality scientific instruments. It contains the modules for optimization, integration, signal processing, genetic algorithms, solving differential equations and other tasks normally solved in science and engineering.

Matplotlib is a library for visualization of two-dimensional (2D) and three-dimensional (3D) graphics.

NumPy is an extension of the Python language that adds support for the multidimensional arrays and matrices, along with a large library of high-level mathematical functions to operate with these arrays.

In addition, very often the sites parsers write in Python. Requests, Beautiful Soup and Scrapy are usually used for this.

Interesting and useful projects implemented with the help of the listed tools:

Prophet is a tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth.

Home-assistant is an open-source home automation platform. It allows to turn an ordinary house into a "smart house" and significantly expand the owner's capabilities in the management and control of the domestic appliances and house as a whole.

Clairvoyant is a program that analyzes the movement of stock prices and predicts their changes in future. It's possible that the next multibillionaire will be the person who will be able to create a similar program that analyzes the cryptocurrencies.

Selenium

Testing

Python is also well suited for writing tests. Among all of the developments made in this field with its help the following can be recommended:

Automa - is a tool for Windows that lets you automate repetitive tasks in the graphical user interface (GUI) of your computer. Automa can be used as a library for the Python.

Selenium automates browsers. Primarily, it's for automating web applications for testing purposes, but is certainly not limited to just that. Boring web-based administration tasks can (and should!) be automated as well. Selenium has the support of some of the largest browser vendors who have taken (or are taking) steps to make Selenium a native part of their browser. It is also the core technology in countless other browser automation tools, APIs and frameworks.

Hypothesis is a library which lets you write tests that are parametrized by a source of examples. It then generates simple and comprehensible examples that make your tests fail, letting you find more bugs with less work.

Raspberry Pi

Robotics

And, of course, we can't fail to mention the remarkable mini-computer - Raspberry Pi, on the basis of which tens of thousands of interesting projects, from the simple toys on out to such serious things as 3D printers and cooking machines, have been created all over the world. In order to make it all work, you just need 3 things: materials for making a "cool thing", Raspberry Pi itself, and, of course, the ability to write in Python.

With some hard work, you can even build a real robot! The following resources might help you with that - Python Robotics, Robocademy, Qbotics Labs.

Conclusion

As you can see, the list of spheres in which you can use Python turned out to be quite impressive. Perhaps you have any questions about one of the development directions or a particular library/framework? Ask us and in the following articles we'll definitely answer all of the questions you're interested in.

Welcome to CheckiO - games for coders where you can improve your codings skills.

The main idea behind these games is to give you the opportunity to learn by exchanging experience with the rest of the community. Every day we are trying to find interesting solutions for you to help you become a better coder.

Join the Game