On Jan 30, 9:51 pm, "Colin J. Williams" <[EMAIL PROTECTED]> wrote: > It would be helpful if the rules of the game were spelled out more clearly. > > The conditional expression is defined as X if C else Y. > We don't know the precedence of the "if" operator. From the little test > below, it seem to have a lower precedence than "or". > > Thus, it is desirable for the user to put the conditional expression in > parentheses. > > Colin W. > > # condExpr.py > # PEP 308 defines a conditional expression as X if C else Y > # but we don't know exactly what X is supposed to be. > # It doesn't seem to be spelled out in the syntax. > > def main(): > names= ['abc', 'def', '_ghi', 'jkl', '_mno', 'pqrs'] > res= '' > for w in names: > res= res + w if w[0] != '_' else '' > z= 1 > print 'res1:', res > > res= '' > for w in names: > res= res + (w if w[0] != '_' else '') > z= 1 > print 'res2:', res > > if __name__ == '__main__': > main() > > Result: > [Dbg]>>> > res1: pqrs > res2: abcdefjklpqrs
But to give them credit though, in Whats new in Python 2.5: PEP 308, they do mention that as a matter of style you should parenthesise the if-expression, and the example given consistes of just a simple assignment of the if-expr to a name. - Paddy. -- http://mail.python.org/mailman/listinfo/python-list