Revision 36 as of 2010-07-31 17:02:51

Clear message

If you are already a programmer, Python could be the easiest to learn of all the languages you have encountered. It is pretty typical to learn the Python language while you are writing your first non-trivial Python program! In other words, feel free to skip "Hello World" and move right to file administration, GUI programming, and exotic numerical analysis! I am exaggerating, I admit! :) But you will definitely be much farther with Python during your first 3 days than you would be with any other language.

Here is an account of a programmer coming to Python and being extremely productive far sooner than he expected to be.

* Eric S. Raymond 'Why Python?'

Moving from Java to Python: if you know Java, and want to learn Python quickly without going through all the beginners tutorials, have a look at Python for Java programmers.

Significant Whitespace

The less said, the better. Python uses whitespace to signify end-of-line and code blocks. This may annoy you at first, but you will get used to it. And as thousands of programmers before you, you will learn to love it.

comp.lang.python

Probably your most valuable Python resource, right after python.org. Spot Python luminaries in their native habitat! Don't be surprised to have your questions answered by the original programmer or the author of the book open on your desk! The best thing about comp.lang.python is how "newbie-friendly" the mail group is. You can ask any question and never get a "RTFM" thrown back at you.

Where is Python's CPAN?

See the Python Package Index (PYPI), Python's centralised database of software. Any developer of Python software packaged using distutils (the built-in packaging system) may easily submit their package information to the index.

Before PYPI, Pythonistas contributed code to The Vaults of Parnassus. Unfortunately, the Vaults are not standardized or automated to the degree that the CPAN is, and the site now appears to be inactive. All hail its many useful years of service.

Python PEP 8: Style Guide for Python Code

Style Guide for Python Code

You will read this sooner or later. Why not sooner?

Back when I was learning programming and I was learning C, I made my own personal convention for braces and parentheses, just like every C newbie does. And like every C newbie, I thought my personal convention was right, all other ways of doing it were wrong, and I was willing to fight to the death over it.

Of course the best way to program in any language is to become a member of that language's community and follow the community's norms. It is initially hard to program in a style that goes against your preferences and prejudices. But the sooner you pick up the community norms, and join the community, the sooner you can take full advantage of all the community's resources.

PEP 8 is a style guide written mainly by Guido. Beyond learning stylistic norms, you will also be presented with a style that is very well thought out (like most things in Python). If you follow this guide, you will program more Pythonically, and you will be more productive with Python.

Tips for "Thinking in Python"

(The phrase Thinking in Python was borrowed from ["http://www.mindview.net/Books/TIPython" the Bruce Eckel book] of the same name. It is currently an online book, available for reading for free-as-in beer! This book is not meant for beginners to Python, however. It is the Python equivalent of Bruce Eckel's popular Thinking in C++ and Thinking in Java)

The following was taken from a post in comp.lang.python from Mel Wilson, which I thought well summarized good Python programming style for people coming from other languages. I also added some things I would have appreciated knowing during my first 3 days with Python.

Python indexes and slices for a six-element list.
Indexes enumerate the elements, slices enumerate the spaces between the elements.

Index from rear:    -6  -5  -4  -3  -2  -1      a=[0,1,2,3,4,5]    a[1:]==[1,2,3,4,5]
Index from front:    0   1   2   3   4   5      len(a)==6          a[:5]==[0,1,2,3,4]
                   +---+---+---+---+---+---+    a[0]==0            a[:-2]==[0,1,2,3]
                   | a | b | c | d | e | f |    a[5]==5            a[1:2]==[1]
                   +---+---+---+---+---+---+    a[-1]==5           a[1:-1]==[1,2,3,4]
Slice from front:  :   1   2   3   4   5   :    a[-2]==4
Slice from rear:   :  -5  -4  -3  -2  -1   :
                                                b=a[:]
                                                b==[0,1,2,3,4,5] (shallow copy of a)

Python Culture


See also: MovingToPythonFromPerl

Unable to edit the page? See the FrontPage for instructions.