- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章python实现简易数码时钟由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
最近迷上了python,要说为什么呢?python语法简单,功能强大,有广泛的第三方库能快速编程实现自己的想法(无需重复去造轮子)。就像某位前辈说的:“人生苦短,学会偷懒…”,配置好sublime text照着网上教程直接上手写个小程序入门.
先插张图,计算机技术的演进过程,总结的还是挺到位的.
安装好python环境,引入需要用到的库:
1
2
3
|
import
threading
import
turtle
import
time
|
引入time库后使用localtime()方法可以获取当前服务器时间,然后使用turtle库绘制7段数码管时钟.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
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 当前时区的名称
# %% %号本身
|
绘制数码管函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# 绘制单根数码管
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库实现定时刷新:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
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()
|
最后定义一个入口函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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,因为语法简洁所以代码的缩进很重要,这也算是一个小坑吧,不过熟能生巧,还需多多练习.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/u010815486/article/details/82940392 。
最后此篇关于python实现简易数码时钟的文章就讲到这里了,如果你想了解更多关于python实现简易数码时钟的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我的代码如下所示: #include #include #include int main(void) { time_t loop_begin, loop_end, scanf_begi
我正在尝试制作一个游戏时钟,其中每个游戏小时都是 3 个实时分钟。但是由于某种原因,我很难将头环绕在它周围。 我想出了这个半工作位,每小时循环 3 分钟,所以它只显示完整的“游戏时间”,我在 23 以
很难找到解决方法的地方。我希望制作一个时钟,它是一个幻想时区,并且是根据系统时间计算的(因为当您不在网页上时,它需要继续运行)。 白天持续从早上7:00到晚上9:59,这是实时200分钟。 13秒(实
Template.display_time.time = function() { var date = new Date(); var hour = date.getHours();
我想做一个小测试,以测试我在远离 javascript 太久之后的技能。试图成为真正的cwleaver并创建一个时钟对象,听起来很简单。我成功地创建了时钟等,没有遇到任何问题,但在大约 20 分钟后运
我正在学习 Javascript30.com 类(class),我们必须做一个带有秒、分和小时的 JS 时钟。这是代码: 还有 J
我有一个 Android 应用程序,用户按下开始按钮并启动一些收集数据的功能。我有一个自定义的 EditText,它显示所有这些过程所花费的时间,并且每秒更新一次,直到用户按下停止键。我使用如下所示的
我正在尝试模拟实时数据流,以测试不断过滤和计算数据点的程序。主要是我需要确保它能满足时间要求。 每 50 毫秒就会有一个新的数据点需要计算。 所以我想创建一个 java 时钟,它独立于当前在 jvm
我正在抓狂:我的 Javascript 时钟不工作。我正在使用 Firebug 来查找错误,但没有得到任何输出。 图像文件位于子文件夹 Dual_Months 和 Dual_Numbers 中。我在我
我计划构建多个计时器。我首先使用以下代码构建一个简单的时钟。 问题是,时钟将运行几分钟,网站就会崩溃,我认为这是由于内存不足。 当我console.log输出时。该命令似乎每秒运行多次。 consol
我是新来的,所以如果您对我的问题或“礼仪”有任何不妥之处,请告诉我! 我正在尝试在 Google Chrome 中创建个性化的新标签扩展程序,但出现了 JavaScript 时间码问题。虽然它在我使用
我需要编写一个带有倒计时器的 JavaScript 时钟,当到达特定时间时,该计时器开始倒计时 5 分钟。所以我有我的时钟和它的工作,但我不知道从这里到哪里去,当谈到 JavaScript 时,我真的
我开发了一个用于多线程计算的类,一个线程只使用这个类的一个实例。我还想通过从另一个线程迭代此类的容器来测量计算的持续时间。该应用程序是win32。问题是我读过 QueryPerformanceCoun
我有一个像这样的时钟: const timeContainer = document.querySelector('.timeContainer'); var showTime = (timeZone
我在 Canvas 上做了一个时钟,我实际上是在 Canvas 上从中心画线,每一秒我从中心画一条线在一个圆圈里,我最终在时钟上画了秒线。我如何清除之前绘制的线,使其看起来像一个真正的时钟。 非常感谢
我正在尝试编写一个倒计时时钟脚本。我想在未来使用一个设定的日期,并以一种易于阅读的格式倒计时。小时,分钟,秒。我要打印到 16x2 液晶显示器。我遇到的问题是试图将日期之间的差异的输出转换为一种很好的
我在计算进程的 CPU 时间的各种机制上研究了 stackoverflow 线程。 clock() 内部是如何实现的?它是否使用 rdtsc()(如果是这样,那么它对核心之间的迁移很敏感)。 此外,g
我需要在时钟上显示服务器时间。以下是我目前拥有的代码。我通过 Ajax 调用获得服务器时间。问题是,如果用户更改它的本地/计算机时钟,它也会更新脚本的时钟,这是不对的——它应该继续而不改变,我被卡住了
当我运行下面的代码时,我得到了一个值 0,有几次我确实得到了 intAddition 的值。我已经尝试了很多我在网上找到的建议,但还没有成功。我的同学向我展示了他是如何做的,这与我的非常相似。他从他的
我正在尝试使用 asm 和 rdtsc 实现我自己的 clock() 版本。但是我很不确定它的返回值。是循环吗?奥德是微秒吗? 我也对 CLOCKS_PER_SEC 感到困惑。这怎么可能是恒定的? 是
我是一名优秀的程序员,十分优秀!