最近迷上了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数码时钟代码_python实现简易数码时钟相关推荐

  1. python动态时钟代码_python实现简易动态时钟

    本文实例为大家分享了python实现简易动态时钟的具体代码,供大家参考,具体内容如下 from turtle import * from datetime import * #移动到指定位置 def ...

  2. 用python动态时钟代码_python实现简易动态时钟

    本文实例为大家分享了python实现简易动态时钟的具体代码,供大家参考,具体内容如下 from turtle import * from datetime import * #移动到指定位置 def ...

  3. python七段数码管创新_Python绘制七段数码管显示当前时间

    利用Python中的turtle图形库绘制七段数码管,显示当前时间 代码 # coding:utf-8 # 绘制七段数码管,显示当前时间 import time import turtle as tt ...

  4. python视频处理代码_python如何实现视频转代码视频

    本文实例为大家分享了python如何实现视频转代码视频的具体代码,供大家参考,具体内容如下 # -*- coding:utf-8 -*- #coding:utf-8 import argparse i ...

  5. python五边形的代码_python正五边形代码

    python正五边形代码 第一步先找规律,抽象化问题.首先我们观察到,第一行为[1],我们直接赋给一个变量:初始化数列 p = [1].核心点是这个除去首位两个 [1] 的中间部分:[p[0] + p ...

  6. python阶乘的代码_python编码阶乘

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 需求:阶乘:也是数学里的一种术语: 阶乘指从1乘以2乘以3乘以4一直乘到所要求的 ...

  7. python画花朵代码_python画花朵代码分享

    python画花朵代码分享 发布时间:2020-05-09 15:36:11 来源:亿速云 阅读:295 作者:小新 这篇文章主要为大家详细介绍了python画花朵代码,文中示例代码介绍的非常详细,具 ...

  8. python 论坛爬虫代码_python博客文章爬虫实现代码

    例子,python网页爬虫实例,实现博客文章抓取的python爬虫. 代码示例: #!/usr/bin/python #-*-coding:utf-8-*- # JCrawler # Author: ...

  9. python数码时钟代码_Python+Pyqt实现简单GUI电子时钟

    本文实例为大家分享了Python+Pyqt实现简单GUI电子时钟的具体代码,供大家参考,具体内容如下 突发奇想想用GUI做一个简单的电子时钟界面,利用pyqt模块也很方便,代码如下: from PyQ ...

最新文章

  1. 如何写出漂亮的代码:七个法则
  2. python怎么后退_使python迭代器向后退?
  3. php 类的数组对象,javascript、php数组对象互转类
  4. 那些年,我们踩过的 Java 坑
  5. CentOS安装KVM步骤虚拟机,绝对实用!
  6. 2021年必备 Python 插件!
  7. Eclipse中使用Checkstyle,checkstyle插件检查java代码的自定义配置文件:
  8. Cassandra Gossip协议的二三事儿
  9. C++ 从入门到入土(English Version) Section 1:Gates, Circuits and Boolean Algebra
  10. 【转】linux kernel 网络协议栈之GRO(Generic receive offload)
  11. 05-Vue报错 Uncaught SyntaxError: Identifier has already been declared和路由
  12. C# 一些不注意知识点:命名空间,等级,class等等
  13. python日历_用python做日历
  14. STM32锁死解锁方法
  15. 令人期待的大戏:千亿百度
  16. mysql自增长id用完了,怎么办?
  17. 单目slam LoopClosing之Sim3优化
  18. linux timerfd系列函数学习笔记2 获取超时次数
  19. vue3项目打包优化三步走
  20. 【AAAI2023】视觉辅助的常识知识获取Visually Grounded Commonsense Knowledge Acquisition 个人学习笔记

热门文章

  1. 前端开发 个人简历的制作 0228
  2. 办公自动化-带样式的表格xlutils库-0223
  3. mysql-数据库的设计三范示与ER模型
  4. python-面向对向编程-小结
  5. openssh升级之后git账户免密登陆失效
  6. -bash: composer: command not found解决办法
  7. mysql5.7参数简单介绍
  8. 数据库中字段随机添加汉字
  9. “反应快”的程序猿更优秀吗?
  10. ecshop设置一个子类对应多个父类并指定跳转url的修改方法