Ultimately, and despite what they try and tell you, there is no 'best language' for any particular task, it all depends on what you're comfortable with.
That being said: With Python, the need for python to be installed in the users computer
will drive away some users. Java or the .NET languages don't suffer from this because programs written in them are common enough for users to have them pre-installed or for them to find their way onto PCs pretty quickly. On the other hand, users have to go out of the way for their first ever Python program and probably won't ever have more than one or two on the computer ever. It's a bit of a viscous cycle really...still, if you don't mind that more power to you ^^ Word of advice: "import skynet" is a bad idea
Ironically, outside of things coded in programming circles for programmings sake, I think I've only seen one or two Python programs.
BASIC...a part of me revolts against rather quickly, I think Dijkstra summed it up quite well: The teaching of BASIC should be rated as a criminal offence, it mutilates the mind beyond recovery.
Still, if it works for you
Personally I use C++ a lot of the time, some C# or Java occasionally though I'm not too fond of them. Java to me feels like it's completely forgotten what it was about and become lost in trying to do everything generically. Also some things it just seems to go out of it's way to make difficult for you, like lists.
C# is pretty decent, though for larger projects I prefer C++, and C# has the inherent "teh M$ is teh devil" issues if you care for such things -_- The main problem with C# for me is to do large graphics it typically means falling back to the deprecated managed DirectX, or the more modern and...interesting XNA, both of which have like 0% portability, or to use a 3rd party library...also OpenGL in C# just feels weird to me :S Not bad, just weird...
When I use C++ I do so with the experimental C++0x features GCC 4.x.y provide. The variadic templates it provides are a force of pure joy for me as they made simulating a delegate system similar to C#'s both easy and efficient ^^ I also have a few wrappers around multi-threading, garbage collection, the console window and so-forth which I tend to use as part of a custom personal library =P
In this day and age, efficiency is a silly argument. Whilst a very well written C++ program will only be marginally faster than a very well written C# program, a poorly written C++ program will be immensely slower than a decently written C# program. Assuming you're using a decent language (and not something silly like QuickBASIC), it's quite rare for the language itself, not just how you've written the program, to be the limiting factor on your programs speed.