In article <mailman.1360.1367843880.3114.python-l...@python.org>, Mark Lawrence <breamore...@yahoo.co.uk> wrote:
> > while (number != guess) and (tries < 5): > > One of these days I'll work out why some people insist on using > superfluous parentheses in Python code. Could it be that they enjoy > exercising their fingers by reaching for the shift key in conjunction > with the 9 or 0 key? There's lots of reasons. Some valid, some not. Lets dispense with the invalid reason first. They've come from C/C++/Java/whatever and are used to typing parens around the conditions for if/for/while statements. To them, I say, "Stop trying to write FORTRAN code in languages that aren't FORTRAN". In this case, however, I have no problem with the extra parens. Look at these two statements: >> while (number != guess) and (tries < 5): >> while number != guess and tries < 5: They have the same meaning. To correctly interpret the second one, you need to know that != and < bind tighter than "and". One could say that you should know that, and maybe you would be right. On the other hand, I've long since given up trying to remember operator precedence in various languages. If I ever have even the slightest doubt, I just go ahead and put in the extra parens. It takes another few ms to type, and it removes all ambiguity (for both me, and every future person who has to read my code). And, every once in a while, it keeps me from writing a subtle and hard-to-find bug because the precedence rules I was sure I had remembered correctly turned out to be wrong for the language I happened to be typing that day. BTW, in C, I used to write: return (foo) for years until somebody pointed out to me that return foo works. I just assumed that if I had to write: if (foo) while (foo) for (foo; bar; baz) then return (foo) made sense too. -- http://mail.python.org/mailman/listinfo/python-list