On Tue, May 4, 2010 at 2:16 PM, superpollo <ute...@esempio.net> wrote: > superpollo ha scritto: >> >> James Mills ha scritto: >>> >>> On Tue, May 4, 2010 at 9:56 PM, superpollo <ute...@esempio.net> wrote: >>>> >>>> of course! *but* if i must generate on-the-fly python code that defines >>>> a >>>> function i am back again to the problem: >>> >>> One-liner: >>> >>> $ python >>> Python 2.6.5 (r265:79063, Apr 27 2010, 18:26:49) >>> [GCC 4.4.1 (CRUX)] on linux2 >>> Type "help", "copyright", "credits" or "license" for more information. >>>>>> >>>>>> a, b = 2, 3 >>>>>> print a + b if a > b else a**b - b**2 >>> >>> -1 >>>>>> >>>>>> a, b = 3, 2 >>>>>> print a + b if a > b else a**b - b**2 >>> >>> 5 >>> >>> --James >> >> what if i want an elif clause? >> > > my first try obviously falied: > >>>> print a + b if a > b elif a=b "WOW" else a**b - b**2 > File "<stdin>", line 1 > print a + b if a > b elif a=b "WOW" else a**b - b**2 > ^ > SyntaxError: invalid syntax
That's because this technically isn't an if statement. It's the ternary conditional expression. If you want multiple conditions, you have to repeat the expression print a+b if a > b else "WOW" if a==b else a**b - b**2 > > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list