Python is a nice language, easy to learn and it's multi-purpose. I enjoy it a lot. As for your question, I don't think it's a matter of if a language is intended for game making, but whether a language has a good game library or game framework available for the language.
Python has a number of game libraries like:
- As a sidenote about Cocos2d, it was also later ported to Apple iOS/Objective-C as Cocos2d for iPhone
and has become real popular with iPhone/iPad developers, which I've used too (but you'll have to know Objective-C obviously if doing iPhone apps).
- you can make some nice graphic adventure games aka. Visual Novels with this game engine.
Galcon, a popular game, was made with Python using PyGame
Several commercial games use Python as a scripting language, like Civilization (IV, I think?).
But to answer your question about which language to use, it depends on your goals. If you are just trying to learn programming and want something to program, in your case a 2d game, then Python is more than fine.
If you need a GUI in Python you can use Tkinter or probably more preferably, wxPython.
Having said that, if you are on a Windows machine, and you are more serious about game making, then you may want to consider learning C# and the Microsoft Dot Net framework by using Visual Studio 2010 IDE with the XNA Game Studio. Microsoft has some really nice development tools for game making, both 2d and 3d, and you can make games for Windows, Windows 7 phone and even XBOX 360.
They have a free development kit that includes Visual Studio 2010 Express and XNA Game Studio 4.0 available here:
C# is a really nice language and is similar to Java, but with some improvements since C# has been continually evolving and is now at version 4.0. Visual Studio, the coding/development editor, is a really nice IDE and the XNA Game Studio will provide you with a professional level gaming framework.
Of course there are gaming libraries/frameworks for other languages, like Java and C++, as well, but probably not as slick as Microsoft's unless you pay for it.
So in short to answer your question, Python is perfectly fine for making 2D games with using various game libraries. If you wanted to do something more robust, then consider C# with Microsoft's development stack.