It's the same language, just a new version/revision of the standard and specification.The differences are subtle enough that you likely won't notice.
Languages are very formal, standardized things, like dictionaries, maps, or laws.
When the standard changes or a feature is added - usually after a long period of debate and discussion - this formal document is updated. Which triggers a new version number.
Python3 was a significant update to the existing standard so they went as far as to change the first number in the version field to indicate its significance. However, its "still python"
From the python.org page on 2vs3
What are the differences?
Short version: Python 2.x is legacy, Python 3.x is the present and future of the language
If it were me I would start learning from the current version, unless you have a compelling reason not too - like a must have library written for python2.
Details
What are the abstract level differences between Python 2 and Python 3 as it relates to hobbyists doing hobbyist things on the Pi and learning Python?
Practically None.
For systems engineering perspective (larger embedded projects), there are a few features in Python3 that make it a more suitable language for designing large systems.
For example, does either provide a significant advantage or disadvantage to working with the GPIO, or other IO, of the Pi? Are any features of the Pi hampered, nerfed, or not present by using one version over the other?
No, There is no significant advantage or disadvantage for one vs the other for learning or doing "hobbyist" things.
However, If there is a library, tutorial, or example you wish to try that supports one and not the other then start with that version
Python2 still has more support from libraries, and more code for it on e.g. github to use as example. But this is rapidly changing.
because both usually come with the OS. For some reason, that seems confusing.
It can be.
There are many system utilities and applications available that are written using python, often these programs work well, and are very well tested from many uses.
Porting to Python3 presents a risk that may not be worth the effort. As such many systems will package both python2 and python3 in order to run software that requires one or the other.
I would highly recommend that you learn to use virtualenv
and pip
to create local, customized installations of python on a per-project basis. The "system" python is intended to support installed programs and may not be the version you want to use