number ranges (was Re: Matlab page on scipy wiki)
Colin J. Williams
cjw at sympatico.ca
Mon Feb 20 15:11:23 EST 2006
Steven D'Aprano wrote:
> John Zenger wrote:
>
>> I strongly agree that Python should promote range or xrange to syntax.
>> I favor [0..10] rather than [0:10] because 0..10 is inherently easier
>> to understand.
>
>
> "Inherently"?
>
> You mean people are born with an instinctive, unlearnt understanding of
> ..? Or that our brains are constructed in such a way that .. is easier
> to understand?
>
> For what it is worth, even after years of Python programming, I still
> sometimes write this:
>
> for i in len(myList):
> # Oops.
>
> I too prefer range() or xrange() over magic syntax, but I'm not
> especially a lover of the range() idiom. How about this? With the
> introduction of a single keyword, we could do this:
>
> for i in 2 to 5:
> print i,
>
> which would print 2 3 4 5
This could be extended to:
for i in 2 to 5 by 2:
print i
This would require another reserved word.
Colin W.
>
> (I'm open to arguments that it should be more Pythonic and less
> mathematical, and halt at 4.)
>
> A second keyword "downto" would allow easy backwards loops, and a third
> "step" will absolutely kill any chance of Guido agreeing to this
> whatsoever.
>
>
>
>> Haskell also has a good step notation. In Haskell:
>>
>> [1..10] means [1,2,3,4,5,6,7,8,9,10]
>> [1,3..10] means [1,3,5,7,9]
>
>
> I'm wary of that notation. It is too easy to make typos, what with , and
> . next to each other, and the typos often will not raise an exception
> but will simply give incorrect but puzzling behaviour. This isn't unique
> to the proposed syntax (e.g. under Python today it isn't obvious whether
> [0,3] is a typo for [0.3]) but it gives me pause.
>
>
More information about the Python-list
mailing list