+3  A: 

A lot of the newer Python books target Python 3.x. You'll be learning the future!

But third party modules aren't necessarily Python 3.x ready... but if you're just learning programming that might not matter much anyway.

RyanWilcox
It's not about third party modules. I want to add Python to the languages I already mastered.
aefxx
if you've already mastered so many languages, i wonder if you've mastered them at all! if you don't intend to use third party libs you certainly haven't mastered productivity. go with 2.6 if you intend to actually do something
Matt Joiner
+3  A: 

The only possible drawback that I can think of is that a lot of existing Python code and examples are written for Python 2.x and might not work in Python 3. But the changes that you need to make are usually quite small so you will soon get used to the slight differences.

If you are learning from a tutorial, make sure it is aimed at Python 3.x and not 2.x so that the examples run correctly.

Mark Byers
+16  A: 

3.1 is much simpler than 2.5 or 2.6, but currently suffers a severe dearth of third-party add-ons, environments supporting it (big apps using it for scripting, etc) and tools such as IDEs. So, much depends on what you want to learn Python for -- if just for personal edification, 3.1 is ideal; if it's to actually build or control applications, websites, etc, then 2.5 or 2.6 will serve you better at the present time (3.* will no doubt reach and surpass 2.* in the future, but, the future is not here yet;-).

Alex Martelli
3.1 is at most marginally simpler than 2.5/2.6. I would have to wonder what's worth learning without tools to build or control applications, websites, etc.
Mike Graham
@Mike, for many years MIT based their first programming course on Scheme -- entirely bereft of tools to build or control applications, websites, etc -- simply for the depth of learning it supported (SICP, the immortal book, is now freely available online). MIT's now switched to Python (`2.*`) for that course, favoring practicality, but other schools still favor "personal edification" over practical issues (using e.g. Scheme, Mozart, SML, and the like) in introductory programming. For such a course, focused on Python, the many old redundant things in 2 removed in 3 make 3 **much** simpler.
Alex Martelli
small is better. i agree, i've found that python3 is much easier with all that cruft removed. take a look at some of web libs like http, buffer interfaces as with StringIO, and change to the "default" use of iterators everywhere possible, instead of the current provision of a non-iterator and iterator version of every function
Matt Joiner
+1  A: 

Python is a good language for beginners. It is easy to get somthing up and running quickly. The language contains all the major programing techniques, such as OOP, etc, so you can learn both how to program and concepts with it.

Plenty of online tutorials:

On a side note, that this is an interpreted language, meaning there is no compiler/linker. So, IMO, it is easier to start writing code.

Am
Thanks for the links. I'm actually a quite experienced programmer (coming from the Java/C world, now doing web development with PHP) and wanted to have a go with Python as everybody seems to hype it.
aefxx
Ah, then you might also want to learn some specific frameworks, like django, which utilize the python power.
Am
I'll have a look at django. Thanks Am.
aefxx
@aefxx Since you were asking about 3.1 in particular, note that Django does not work with Python 3.x yet unfortunately.
Alex JL
If you are an experienced programmer and so can pick things us quickly than I would recommend "Dive into Python 3", or if you want to stick with Python 2, "Dive into Python". Both books are available online.http://diveintopython3.org/http://diveintopython.org/
pwdyson
+4  A: 

Library support is a big issue, for now, until library developers develop their support for Python 3.x.

For example, here are some popular libraries that you might be interested in learning, that do not yet support Python 3.x:

Here are some libraries that do support Python 3.x:

Libraries with support in-progress:

Craig McQueen
PyGame is worth waiting for, the rest can take a nice holiday :)
Matt Joiner