On 3/15/2012 13:21, Chris Angelico wrote:
On Thu, Mar 15, 2012 at 10:59 PM, Kiuhnm
<kiuhnm03.4t.yahoo...@mail.python.org>  wrote:
On 3/15/2012 12:47, Chris Angelico wrote:
It's a little odd, perhaps, if seen in a vacuum. But everything counts
from zero - list indices, etc - so it makes sense for range(len(lst))
to return indices valid for lst.

Maybe range uses [...) intervals? So range(a,b) is a,a+1,a+2,...,b-1 and
range(b) is just short-hand for range(0,b)?

Yup. It's amazing how accurate your conjectures are - it's almost like
you've been reading the docs! :D

Come on... that was easy! :)

But yeah, that's pretty logical IMHO;
and having gotten used to [) intervals in many areas of computing,
I've come to find [] intervals disconcerting. Bible passages are
described as, for instance, John 14:5-7, which is a three-verse
passage (5, 6, 7), even though 7-5=2.

Common people use mainly inclusive intervals as far as I can tell.
For instance, "from" and "to" are inclusive.
They could tell you they don't like your intervals because 8-5+1 = 4 instead of 3.

However, inclusive-inclusive intervals have the benefit that they
don't require the element "beyond the last" to be indexable. This is
important if you're working with something that takes up all of
addressable memory - going back to the IBM PCs on which I learned to
code, you could use one 64KB segment for an array, but then there's no
way for a 16-bit integer to indicate "past the end".

But you lose the empty interval (a,a). You're forced to use (a,a-1) or something similar. There's always a drawback.

List comps are pretty readable if you know how programming languages
work. Python need not be readable by everyone and his grandmother, and
it does a fairly good job of being grokkable to someone who has a few
ranks in Coding. (Yeah, I'm a D&D nerd. )

I like what I've seen so far.

Python has its problems, but it's a good language. I personally prefer
to delimit blocks of code with braces than with indentation,

I, on the other hand, prefer indentation. I find braces redundant (in fact, I never use them in pseudo-code).

and I
also prefer explicit declaration of variables (yes, it's extra work,
but you can have infinitely nested scopes and easily-caught syntax
errors when you misspell one), but they're relatively minor.

I usually declare my variables but close to where I need them.

One of my
favorite aspects of Python is that *everything* is an object. There's
no magic syntax that gives you a piece of an object, or something
special about variables that contain this, that, or the other. A
literal list [like, this, one] can be used in exactly the same ways as
the name of a variable containing a list or a function call returning
a list - there is no difference. Oh how I yearn for that when working
in C++ or PHP!

Don't worry. Soon you'll be using C++0x :)))

Kiuhnm
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to