短qlock

えー 先日の時計quineがわりと長かったんで けっきょくミリ秒まで表示しないとquineとして機能しないかった。いささか美的じゃないので短くしようと思う。

s="""
import datetime,sys
c=chr
w=sys.stdout.write
def put(t,x,y,z):
 global st
 for i in range(x):
  if ([1073733591, 2911164693, 1067450325, 2778089557, 1067438039][(z>1)+(z>5)+(z>7)+(z>11)]>>3*ord(t)-144)>>y&1:
   w(st[0])
   st=st[1:]+chr(118)
  else:w(chr(32))
d=datetime.datetime.today()
for z in range(14):
 for t in ":".join(map(lambda x:["0",""][x>9]+str(x),[d.hour,d.minute,d.second])):
  put(t,3,0,z)
  put(t,7,1,z)
  put(t,3,2,z)
  w("  ")
 w(chr(10))
print c(34)*3+c(10)+'s=s.replace('+chr(34)+chr(107)+chr(34)+',"'+c(92)+'n").replace("v"," ")'+c(10)+'print st=s.replace("'+c(92)+'n").replace("v"," ")'+chr(10)+'print "s="+chr(34)*3'+chr(10)+'exec(s)'+c(10)+' '*80+'#made by catupper#'
"""
s=s.replace("k","\n").replace("v"," ")
st=s.replace("\n","k").replace(" ","v")
print "s="+chr(34)*3
exec(s)

みじかくするなんてむりぽ。。。
たいして短くなってない ”1”の面積が小さすぎるから太くした。ご了承願いたい。
あと一桁だと十の位に0が付く仕様、これで横幅の小さい出力になる