On Sat, 26 Mar 2005 10:02:13 +0100, Javier Bezos wrote: > > "Tim Tyler" <[EMAIL PROTECTED]> escribió en el mensaje > news:[EMAIL PROTECTED] >> What do you guys think about Python's grouping of code via indentation? >> >> Is it good - perhaps because it saves space and eliminates keypresses? >> >> Or is it bad - perhaps because it makes program flow dependent on >> invisible, and unpronouncable characters - and results in more >> manual alignment issues by preventing code formatters from managing >> indentation? > > I particularly hate it, but Python has lots of good > things which compesate that (another annoying point > of Python are slices -- mine are always off by 1). > I always write explicitly ends as #end, so that I > can reorganice the code easily if necessary. Maybe > in the future, when Ruby matures, I could change > my mind, but currently Python is still my favourite > scripting language (as formerly was Tcl). >
About slices: I agree that Python's slice boundaries (some_list[a:b] being all elements with a <= index < b) are counterintuitive at first. But this method does satisfy some handy properties, the first of which being: l[:n] + l[n:] = l Secondly, the range() function behaves identically to slices, meaning that for i in range(10): will iterate 10 times, and for i in range(len(l)): will iterate over the indices of the sequence l. If you had l[a:b] be inclusive on both a and b (instead of inclusive on a and exclusive on b), you would have to be adding and subtracting one in all of these examples, leading that much more easily to off-by-one errors. A digression: my data structures teacher (in c++) has a vector class that allows you to set upper and lower bounds, and he combines this with for loops that usually start at one but don't always. I doubt he was trying to get this point across, but the lesson I've learned is to always start at zero and count to less than the length of the list (in c, the idiom is for (i = 0; i < length; i++)). Believe me that any other way will only lead to trouble! :-) -- Jacob Lee [EMAIL PROTECTED] | www.nearestneighbor.net -- http://mail.python.org/mailman/listinfo/python-list