But if I understand correctly, it is a scripting language.
So I bumped into this doubt - is python a programming or a scripting language?
The best difference I've seen between "programming" and "scripting" is Knuth v McIlroy, summarized here. http://www.leancrew.com/all-this/2011/12/more-shell-less-egg...
More or less by definition, a scripting language is a programming language.
In a practical sense, and as stonemetal says, there is no real-world difference between a programming language and a scripting language.
In a technical sense though, one might consider a programming language to have a compiler and linker and debugger and able to create stand-alone executable files. Most scripting languages can also do that these days.
Perhaps the best guide then is intent - if a language is intended for script tasks (Windows/DOS batch files, for example, or even PHP), it is a scripting language. If the language supports a wider focus, it is a more general purpose programming language (Python, C, PERL, Java, etc.).
Ultimately, the best tool for the job, selected from the tools you know :) If you're writing a web application, there are a few languages either explicitly designed for that (PHP is a good/bad example), but many other languages can do it as well (Python, C, PERL, Java, etc.). If you're writing a desktop application, PHP would not be your best bet, but Python might not be either. Ditto mobile apps.
Because it is a general purpose programming language, you can use it to make applications as well. Right now at work I'm using Salt Stack, which is a full application written in python. Django is another popular application written in python.
It's easy to think of python as a scripting language because a lot of people who graduate to python from perl only ever used perl for scripting, but that's a general purpose language as well.
Really the difference between "programming languages" and "scripting languages" has nothing to do with the language and everything to do with restrictions placed on the environment you use it in. Where a normal install of python would let you code scripts or full applications, a purposefully limited version of it (for example a limited version of python is bundled as a mod tool in the game Civilization 4) makes that specific implementation "scripting" or "macroing" or however else you want to classify it. The language itself is still python, though.
Programming
*
*
*
*
*
Scripting
* *
* *
* *
* *
* *
Python Perl...etc