用py实现一个时钟

双十一啥都没买,一没妹纸二没钱,干脆坐电脑前面写代码吧。看到 @阿里云安全 发的微博:

05.jpg

我想,这个简单啊,作为一个忠实的py党,一分钟写了个简单的:

06.jpg

如此如此:

后来想想,我去,不行说好的时钟呢,这就是个计时器啊。时钟一定要长的够帅!

好我们开始认认真真写时钟,作为一个忠诚的windows党,我一向考虑东西会优先选择windows下。所以有些linux下优越的工具我就用不了了,字符画得我自己找。

我5月份的时候曾经开发了一个在线工具平台,其中有个字符画生成工具:http://tool.p1ng.pw/asciiart.html

选了个字体starwars,有点味道,可以当咱们时钟的样式:

07.jpg

然后我把每个字符保存在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语句替换吧……既然都追求短了,那就再短点吧~~

当然字符画是可以换的,你可以将自己喜欢的字符画替换我给出来的这个,写一个自己范儿的“时钟”。

效果图:

赞赏

喜欢这篇文章?打赏1元

评论

captcha