
Python Practice Book - aburan28
http://anandology.com/python-practice-book/index.html
======
cstuder
FYI: It's Python 2, teaching Python 2 syntax.

Given the state of the whole 2 vs. 3 debate, I'm always surprised that
libaries and books don't post their requirements or used versions more
prominently.

~~~
yeukhon
Most of the writing are Python 2 and 3 compatible (sure the print statement is
enough to throw Python 3 off) and this was written back in 2012 when Python 2
was still the center of the community. Maybe the author thinks writing down
the interpreter (Python 2.7.1) on the first chapter is good enough. Also, this
was prepared for a training if you read the side. So students who took the
author's training probably knew it was for Python 2.

Although I do spot a couple really "non-standard" practice, for example, the
classes still using the old Python 2 syntax:

class Name: vs class Name(object):

~~~
zeckalpha
Actually, leaving out `object` is the preferred convention for Python 3, as
they are semantically equivalent. In Python 2, they mean different things, and
you generally want to mean `class Name(object):`. Explicit is better than
implicit.

~~~
kbyers
Why is this a 'preferred convention' for Python3? Doing this causes a lot of
confusion for Python beginners that write code in Python2 (i.e. it causes them
to accidentally use old-style classes). A better practice is to add the extra
word i.e. 'class ClassName(object):' for both Python2 and Python3 code. This
is especially true if you are writing Python tutorials. Since we are going
through this Python2 to Python3 transition it is better to minimize the
differences in the cases where they don't really matter (i.e. add the extra
'object' word).

~~~
meowface
It's considered a wart that old style classes even exist in the first place.
Classes look way nicer without it.

Imagine having to write `extends Object` for every Java class you make.

------
tyng
Ever since completing the Codeacademy Python course, I've been looking for
simple but practical python projects that can help me learn to apply my
skills. But so far the projects I found have been either too difficult or too
simple (textbook like). I wonder if there is a more structured project-based
learning material out there? Any suggestions?

~~~
compedit
This sounds exactly like what you're looking for! [0]

 _You’re a new coder. You’re interested in learning how to code, not just
syntax. You’re sick of monkey-see, monkey-do types of tutorials.

Let’s set your teeth into some real coding. Your hand will be held in the
beginning, but as you progress you’ll see yourself approaching the projects
more comfortably._

[0] - [http://newcoder.io/](http://newcoder.io/)

~~~
tyng
This looks cool! Will give it a go over the weekend. Thanks for sharing!

------
nness
Hmm, noticed a few mistakes in the Getting Started section, both code, grammar
and spelling. Where can we submit issues?

~~~
echohack
...and I'm surprised there's a whole section on using recursion in Python,
considering Python guards against recursion depth. (tail recursion is
especially applicable here). The author seems to have a solid understanding of
Python, so I'm a little confused.

In general, if you use recursion in python, you're gonna have a bad time.
Better to use an iterator (which is usually more memory efficient anyway
because you're not slurping up the whole thing...).

Of course, you can always hack it and sys.setrecursionlimit, but WHY WOULD YOU
DO THIS.
[https://docs.python.org/2/library/sys.html#sys.setrecursionl...](https://docs.python.org/2/library/sys.html#sys.setrecursionlimit)

------
erikb
Just looking through the Contents it seems like a more elaborate Tutorial? At
least for me the title suggested that this book is for people who are already
intermediate/advanced Pythonistas who want to improve their skills. Would be
great to find a book like that.

------
donniezazen
hmm

Python2 -
[http://pymbook.readthedocs.org/en/latest/](http://pymbook.readthedocs.org/en/latest/)

Python3 -
[http://pymbook.readthedocs.org/en/py3/](http://pymbook.readthedocs.org/en/py3/)

~~~
4ndr3vv
Looks like this has been fixed now; latest takes you to the Python 3 page.
...and py3 takes you to the python 2 page O_o

~~~
kushaldas
py3 branch is the Python 3 version, which is a ongoing work.

------
mobman
made by "sphinx"....another python masterpiece !!

------
porter
This is awesome. I wish this was extended to teach more advanced topics such
as how to create reusable packages, big O notation, etc.

------
cursivedgreat
Great piece of work and truly interactive learning. Its gonna fun to learn
python.

