In Python 2 there were some ways of doing some things more than one way in Python 3 they tried to make it so that there fewer places where these multiple choices existed.
The aim was to simplify the code by removing some of the old ways of doing things.
It is said that they hope Python 3 will become the standard and any one truly conversant in Python 2 will know all of the ways python 2 has to do any particular job
The philosophy behind this is explained here http://en.wikipedia.org/wiki/Python_3000#Version_3.0
But basiclly the threw out some of the older long winded ways of doing things and tightened up the language.
If you learn on 3 it should work on 2 if you learn on 2 you may learn some things that will be obsolete on 3 but you will have learned ways to cucumvent these issues.
So if you learn only on Python 3 and you look at code witten using Python 2 you may see some things and think what the hell is that about, that will be a bit of old code and chances are you will be easily able to work out what is wrong and stich in the Python 3 fix.
Some nutters will be able to write code that does both with one method commented out and all you will need to do is reverse the commenting. Coders with this level of copedence should be locked up for the safety of us mere mortals.
Confused you will be