On Thu, Nov 26, 2020 at 01:27:46PM +1300, Greg Ewing wrote: > On 26/11/20 12:41 pm, Steven D'Aprano wrote: > > a = "abcdef" > > a[-2] # returns a result > > Yes, but did you *intend* that result, or did the -2 > result from a calculation that should have returned a > positive index but went wrong? Python has no way to > tell.
Ah, now the penny drops! You are suggesting that the negative index might be a miscalculation. Okay, fair enough. Be happy that if the index is *sufficiently* negative, it will still raise an out-of-bounds IndexError. But is there something fundamentally harder about verifying your calculation in the half-open interval `-n <= index < n` versus the half-open interval `0 <= index n`? I don't think there is. Personally, I have miscalculated indices and got the wrong *postive*, but still within bounds, value far more than an unwanted negative value. E.g. I expected to calculate an index of 3, but got 7 instead. That's much harder to test against than an unwanted negative: assert index >= 0 and the problem is solved. In any case, as you correctly point out, we're not going to dump negative indices, so this discussion is rather hypothetical. -- Steve _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/CFOTFHQEPT3PWAZAEIFDM2OIEUJ43B7C/ Code of Conduct: http://python.org/psf/codeofconduct/