Conditional operator in Python?
thp at cs.ucr.edu
thp at cs.ucr.edu
Tue Sep 4 03:58:56 EDT 2001
More information about the Python-list mailing list
Tue Sep 4 03:58:56 EDT 2001
- Previous message (by thread): Conditional operator in Python?
- Next message (by thread): Conditional operator in Python?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, Sep 04, 2001 at 09:48:13AM +0200, Mikael Olofsson wrote: > > On 04-Sep-2001 thp at cs.ucr.edu wrote: > > Okay, factorial is a somewhat simplistic example. Consider the > > following function, which counts the k-way partitions of n: > > > > p = lambda k, n : ( > > ( k < 1 or k > n ) and [0] or > > ( n == 1 or n == k ) and [1] or > > [p(k-1,n-1)+p(k,n-k)] > > )[0] > > > > Using, say, ?: notation this would be written: > > > > p = lambda k, n : > > k < 1 or k > n ? 0 : > > n == 1 or n == k ? 1 : > > p( k-1, n-1 ) + p (k, n-k ) > > > > which seems much more concise and readable. > > Well, both are just as hard to read to me, but then I have never used > C. I (almost) always use if-then-else, since that fits my small brain > best. Sure, it needs more rows, but I prefer that to both variations of > line noise above. So, replace "?" by "then" and ":" by "else", obtaining: p = lambda k, n : k < 1 or k > n then 0 else n == 1 or n == k then 1 else p( k-1, n-1 ) + p (k, n-k ) which reads better with a couple of if's added: p = lambda k, n : if k < 1 or k > n then 0 else if n == 1 or n == k then 1 else p( k-1, n-1 ) + p (k, n-k ) I'm not lobbying for ?: notation in particular. I simply want something better than (a and [b] or [c])[0]. In fact, the if/then/else notation is my personal favorite. Regards, Tom Payne
- Previous message (by thread): Conditional operator in Python?
- Next message (by thread): Conditional operator in Python?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list