双十一啥都没买,一没妹纸二没钱,干脆坐电脑前面写代码吧。看到 @阿里云安全 发的微博:
我想,这个简单啊,作为一个忠实的py党,一分钟写了个简单的:
如此如此:
后来想想,我去,不行说好的时钟呢,这就是个计时器啊。时钟一定要长的够帅!
好我们开始认认真真写时钟,作为一个忠诚的windows党,我一向考虑东西会优先选择windows下。所以有些linux下优越的工具我就用不了了,字符画得我自己找。
我5月份的时候曾经开发了一个在线工具平台,其中有个字符画生成工具:http://tool.p1ng.pw/asciiart.html
选了个字体starwars,有点味道,可以当咱们时钟的样式:
然后我把每个字符保存在py的数组tchar中,这样我用tchar[2]就能得到“2”的字符画。代码如下:
#!/usr/bin/env python import time,sys,os tchar = [ ''' ___ / _ \ | | | | | | | | | |_| | \___/ ''',''' __ /_ | | | | | | | |_| ''',''' ___ |__ \ ) | / / / /_ |____| ''',''' ____ |___ \ __) | |__ < ___) | |____/ ''',''' _ _ | || | | || |_ |__ _| | | |_| ''',''' _____ | ____| | |__ |___ \ ___) | |____/ ''',''' __ / / / /_ | '_ \ | (_) | \___/ ''',''' ______ |____ | / / / / / / /_/ ''',''' ___ / _ \ | (_) | > _ < | (_) | \___/ ''',''' ___ / _ \ | (_) | \__, | / / /_/ ''' ] db = ''' _ (_) _ (_) ''' while(1): print '\n'.join([''.join([' '.join(((tchar[int(c)] if c.isdigit() else db).split('\n'))[i]) for c in time.strftime('%H:%M:%S',time.localtime(time.time()))]) for i in range(6)]) time.sleep(0.1) os.system('cls' if os.name == 'nt' else 'clear')
windows下确实没有什么好办法清屏,设置控制台颜色还得调用WINAPI(汗),于是我只能用cls命令了。
py的确很简洁,~~lamdba不支持try..except也让我好一番失望,本以为代码可以更短的,但为了显示“:”,还是需要作出一些牺牲的,我另定义了一个tochar()函数。 ~~ 还是用if语句替换吧……既然都追求短了,那就再短点吧~~
当然字符画是可以换的,你可以将自己喜欢的字符画替换我给出来的这个,写一个自己范儿的“时钟”。
效果图: