[Python-Dev] What is the ":" for in python?

Michael Chermside mcherm at mcherm.com
Fri Feb 27 14:54:58 EST 2004


> I was asked why python required a ":" in its syntax and then saw
> Pete Shinners query on changing the parser to treat "def" to ":" as a unit.
> 
> What is the purpose of the ":"?
> 
> Why doesn't the parser work as Pete suggests already?
> Of course the same rules should be true of "if" and ":", "while" and ":"

If I recall correctly, the original reason for the ":" is that the designers
of ABC (which provided much of the original inspiration for Python)
conducted a study and found that people recognized block boundaries
better if they were introduced by a ":" in addition to being indentation
delimited then if they were just indentation delimited.

For more details see this posting of Tim's:
 http://mail.python.org/pipermail/python-list/2000-December/022506.html

> if x > 10
> and x < 20:
>      do_in_range()
> 
> rather then
> 
> if( x > 10
> and x < 20 ):
>      do_in_range()

Interesting. Everyone has their own preferences, but I find BOTH
of these very difficult to read. I would prefer

    if (x > 10
        and x < 20):
        do_in_range()

Of course

    if (10 < x < 20):
        do_in_range()

is even better <wink>.

-- Michael Chermside




More information about the Python-Dev mailing list