There is a python contest at http://www.pycontest.net/
The task is writing the shortest program to drive a seven-segment LCD thingy.
I have no hope of winning, but here's a helpful hint:
If your code is any longer than this (191 chars), it will not win ;-)
a=' _ ' b='|_|' c=' ' d=' |' e=' _|' f='|_ ' g='| |' v='agbcddaefaeecbdafeafbaddabbabe' def seven_seg(x): return '\n'.join([eval('+'.join([v[int(l)*3+i]for l in x]))for i in 0,1,2])+'\n'
Note: I edited this item way too many times already ;-)
And yes, I can save two characters moving the return up.
A much uglier, yet much shorter (151) version:
def seven_seg(x):return''.join([''.join(['| ||__ __ || | |'[int('a302ho6nqyp9vxvpeow',36)/10**(int(l)*3+u)%10::7]for l in x])+'\n'for u in 0,1,2])
And yes, that pretty much proves you can write ugly python. And I am giving up. A shorter version probably involves a different algorithm, and I can't find any.
I am particularly proud of saving one character by writing 104004334054154302114514332064 as int('a302ho6nqyp9vxvpeow',36).
Also interesting is that the number I was using there originally started with 4 and was exactly the same length written both ways ;-)
Since that number is pretty arbitrary (it's an index table into the "graphics" array), I just shuffled the 1 and the 4. The 0 would have been better but then it didn't work, of course :-)