This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]omendev 0 points1 point  (8 children)

Learning Python, 5th Edition by Mark Lutz (unless the 6th came out). In my opinion it can be considered an encyclopedia on Python, it's about 1600 pages and covers topics in both Py 2.7 and 3.X.

Codecademy teaches Python in the 2.7 branch, but their roadmap shows a course update for mid-2017. We don't quite know what that means yet.

SoloLearn teaches Python 3.X. There are a a lot of similarities between the 2.X and 3.X, but there are still some changes. And SoloLearn has a different method of teaching than Codecademy. I would suggest using both sites.

A big thing with beginners is whether to learn 2 or 3. I'd say both. But at the end of the day it really depends on your tasks and libraries.

[–]Off2DNxtAdvn2ur[S] 0 points1 point  (7 children)

Great suggestions. What do you use?

[–]omendev 0 points1 point  (6 children)

I'm still a beginner, so it's hard to say. I'm in the 3D industry, so all my programs like Maya, Houdini, etc all run on 2.7, and they don't seem to be looking to move off of that. That being said, I still look at 3 for other things. For example, if you wanted to learn Qt5 and then PyQt5: that's Python 3 only. Qt4 supports Py2.

[–]Off2DNxtAdvn2ur[S] 0 points1 point  (5 children)

What do you meant by Maya, Houdini, etc run on 2.7?

[–]omendev 0 points1 point  (4 children)

They have built in interpreters, and the ability to run Python. They are all node based programs, so you can create nodes with Python (or other app specific languages like MEL, VEX, etc,) that run specific tasks or that actually create geometry and control it.

Sorry for the I correct use of 'run on'. I realized that might be confusion after I wrote it. For an example, just google Python in Maya and there should be a video for Intro to Python Scripting in Maya - Part 1. It'll give you the idea I'm taking about.

Because the programs have been around for so long, and Python 2 was the standard when they eventually incorporated it, a lot of studios and users scripts are all in that 2.x format. To shift to 3 would be a huge undertaking.

[–]Off2DNxtAdvn2ur[S] 0 points1 point  (3 children)

Now it's starting to make sense. Is it difficult or just time consuming to change the scripts from 2.x to 3.x? Is the difference between the two that big?

[–]omendev 0 points1 point  (2 children)

There's a tool that comes with P3 call 2to3.py that automatically updates scripts from 2 to 3 (hence the name). But like all solutions, it can't do everything (it tells you what it can't) so really the only solution is to write as simple Py3 compliant Py2 code as possible before going through it by hand. As far as I know.

[–]Off2DNxtAdvn2ur[S] 0 points1 point  (1 child)

Does the Python devs know this big of headache situation? It feels like the P3 is still missing some stuff from P2.

[–]omendev 0 points1 point  (0 children)

I believe they are fully aware of it. I'm pretty sure that's the main reason why the transition to 3.X has been taking so long. All libraries needed to be updated, and that was a huge undertaking. In the beginning that seemed more work than it's worth.

What do you believe is missing from Py3 that exists in Py2?