最近迷上了Python,要说为什么呢?Python语法简单,功能强大,有广泛的第三方库能快速编程实现自己的想法(无需重复去造轮子)。就像某位前辈说的:“人生苦短,学会偷懒…”,配置好sublime text照着网上教程直接上手写个小程序入门。
先插张图,计算机技术的演进过程,总结的还是挺到位的。
安装好Python环境,引入需要用到的库:
import threading import turtle import time
引入time库后使用localtime()方法可以获取当前服务器时间,然后使用turtle库绘制7段数码管时钟。
now = time.localtime() # 返回服务器时间 print(now) print(time.strftime("%Y-%m-%d %H:%M:%S", now)) # 转成字符串 # %y 两位数的年份表示(00-99) # %Y 四位数的年份表示(000-9999) # %m 月份(01-12) # %d 月内中的一天(0-31) # %H 24小时制小时数(0-23) # %I 12小时制小时数(01-12) # %M 分钟数(00=59) # %S 秒(00-59) # %a 本地简化星期名称 # %A 本地完整星期名称 # %b 本地简化的月份名称 # %B 本地完整的月份名称 # %c 本地相应的日期表示和时间表示 # %j 年内的一天(001-366) # %p 本地A.M.或P.M.的等价符 # %U 一年中的星期数(00-53)星期天为星期的开始 # %w 星期(0-6),星期天为星期的开始 # %W 一年中的星期数(00-53)星期一为星期的开始 # %x 本地相应的日期表示 # %X 本地相应的时间表示 # %Z 当前时区的名称 # %% %号本身
绘制数码管函数:
# 绘制单根数码管 def drawLine(draw): turtle.pensize(3) turtle.pu turtle.fd(3) if draw: turtle.pd() else: turtle.pu() turtle.fd(24) turtle.pu() turtle.fd(3) turtle.right(90) # 根据数字绘制数码管 def drawNum(num, color): turtle.colormode(255) turtle.color(eval(color)) # 第一条线 if num in [2, 3, 4, 5, 6, 8, 9]: drawLine(True) else: drawLine(False) if num in [0, 1, 3, 4, 5, 6, 7, 8, 9]: drawLine(True) else: drawLine(False) if num in [0, 2, 3, 5, 6, 8, 9]: drawLine(True) else: drawLine(False) if num in [0, 2, 6, 8]: drawLine(True) else: drawLine(False) turtle.left(90) if num in [0, 4, 5, 6, 8, 9]: drawLine(True) else: drawLine(False) if num in [0, 2, 3, 5, 6, 7, 8, 9]: drawLine(True) else: drawLine(False) if num in [0, 1, 2, 3, 4, 7, 8, 9]: drawLine(True) else: drawLine(False) turtle.pu() turtle.left(180) turtle.fd(30) # 绘制后面数字间隔位置 turtle.update()
一个7段数码管全部绘制(显示数字8)顺序如下,根据显示的数字来决定哪些需要绘制,哪些只是抬起画笔移动不进行绘制,所以绘制单段数码管的函数内设置了一个参数draw。
定义一个Tick函数,利用threading库实现定时刷新:
def Tick(): now = time.localtime() now_time.n_sec = now.tm_sec turtle.reset() turtle.hideturtle() turtle.pu() turtle.fd(-300) darwDate(str(now.tm_year), '(255, 69, 0)') turtle.fd(10) turtle.right(90) turtle.fd(30) turtle.write('年', align="center", font=("Courier", 30, "bold")) turtle.left(180) turtle.fd(30) turtle.right(90) turtle.fd(30) darwDate(str(now.tm_mon), '(0,139,0)') turtle.fd(10) turtle.right(90) turtle.fd(30) turtle.write('月', align="center", font=("Courier", 30, "bold")) turtle.left(180) turtle.fd(30) turtle.right(90) turtle.fd(30) darwDate(str(now.tm_mday), '(0,0,139)') turtle.fd(10) turtle.right(90) turtle.fd(30) turtle.write('日', align="center", font=("Courier", 30, "bold")) turtle.left(180) turtle.fd(-90) turtle.right(90) turtle.fd(-510) darwDate(str(now.tm_hour)) turtle.fd(10) turtle.right(90) turtle.fd(30) turtle.write('时', align="center", font=("Courier", 30, "bold")) turtle.left(180) turtle.fd(30) turtle.right(90) turtle.fd(30) darwDate(str(now.tm_min)) turtle.fd(10) turtle.right(90) turtle.fd(30) turtle.write('分', align="center", font=("Courier", 30, "bold")) turtle.left(180) turtle.fd(30) turtle.right(90) turtle.fd(30) darwDate(str(now.tm_sec)) turtle.fd(10) turtle.right(90) turtle.fd(30) turtle.write('秒', align="center", font=("Courier", 30, "bold")) turtle.left(180) turtle.fd(30) turtle.right(90) turtle.fd(30) timer = threading.Timer(0.1, Tick) # 利用多线程库定时刷新 timer.start()
最后定义一个入口函数:
def mian(): turtle.hideturtle() # 隐藏画笔 turtle.speed(0) # 最快 turtle.tracer(0) turtle.pu() turtle.fd(-300) Tick() turtle.done() # Python turtle模块的海龟作图,由于需要展示海龟运动的过程,缺省状态下,对作图进行了延迟处理, # 致使复杂图形的绘制速度过慢,可以用如下方法取消延迟,加速绘图: # 在绘图之前调用tracer # turtle.tracer(0) # 在绘图结束时调用update # turtle.update() mian()
最终效果:
代码写好后,可以打包成一个可执行文件,这里需要用到第三方库PyInstaller;安装第三方库Python封装了包管理工具pip(确保安装时勾选了pip和Add python.exe to Path)。这里我用在线安装的方式,在cmd窗口直接运行:pip install 包名,如 pip install pyInstaller,注意:这种方式安装时会自动下载第三方库,安装完成后并不会删除,如需删除请到它的默认下载路径下手动删除。(win7的默认路径://AppData可能是隐藏文件夹 c:\用户\(你的用户名)\AppData\Local\pip\cache\ linux的默认路径: ~/.cache/pip)
耐心等待下载并安装后,就可以使用PyInstaller了,在需要打包的文件目录下运行pyinstaller -F指令:
打包后生成独立执行文件time.exe:
打包时还可以通过–icon指令设置指定的图标,还有更多指令等以后用到的时候再研究。用了一段时间的Python,因为语法简洁所以代码的缩进很重要,这也算是一个小坑吧,不过熟能生巧,还需多多练习。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
python,数码时钟
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]