返回顶部
首页 > 资讯 > 后端开发 > Python >Python入门——实现简易数码时钟
  • 439
分享到

Python入门——实现简易数码时钟

时钟简易入门 2023-01-31 05:01:01 439人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

最近迷上了python,要说为什么呢?Python语法简单,功能强大,有广泛的第三方库能快速编程实现自己的想法(无需重复去造轮子)。就像某位前辈说的:“人生苦短,学会偷懒…”,配置好sublime text照着网上教程直接上手写个小程序入

最近迷上了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,因为语法简洁所以代码的缩进很重要,这也算是一个小坑吧,不过熟能生巧,还需多多练习。

--结束END--

本文标题: Python入门——实现简易数码时钟

本文链接: https://lsjlt.com/news/188411.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python入门——实现简易数码时钟
    最近迷上了Python,要说为什么呢?Python语法简单,功能强大,有广泛的第三方库能快速编程实现自己的想法(无需重复去造轮子)。就像某位前辈说的:“人生苦短,学会偷懒…”,配置好sublime text照着网上教程直接上手写个小程序入...
    99+
    2023-01-31
    时钟 简易 入门
  • vue2实现简易时钟效果
    本文实例为大家分享了vue2实现简易时钟效果的具体代码,供大家参考,具体内容如下 1.vue2+纯css实现 预览效果: 2.代码如下: <template>     ...
    99+
    2024-04-02
  • iOS实现简易钟表
    本文实例为大家分享了iOS实现简易钟表的具体代码,供大家参考,具体内容如下 效果图: 注意:表盘是一个UIImageView控件,设置image为表盘图片 核心代码: // /...
    99+
    2022-05-23
    iOS 钟表
  • 如何通过Canvas+JS实现简易的时钟
    今天就跟大家聊聊有关如何通过Canvas+JS实现简易的时钟,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。之前学习了下html5中的canvas元素,为了练练手就实现了一个简易的时钟...
    99+
    2023-06-17
  • JS实现电子时钟入门操作
    本文实例为大家分享了JS实现电子时钟入门操作的具体代码,供大家参考,具体内容如下 代码呈上: <!DOCTYPE html> <html lang="en">...
    99+
    2024-04-02
  • JavaScript实现简单钟表时钟
    本文实例为大家分享了JavaScript实现简单钟表时钟的具体代码,供大家参考,具体内容如下 效果图: 主要思想: 1.先画一个圆表盘。 2.再用js循环画刻度(每一个刻度都是li...
    99+
    2024-04-02
  • web.py 十分钟创建简易博客实现代码
    一、web.py简介 web.py是一款轻量级的Python web开发框架,简单、高效、学习成本低,特别适合作为python web开发的入门框架。官方站点:http://webpy.org/ 二、web...
    99+
    2022-06-04
    十分钟 简易 代码
  • Android实现简易的闹钟功能
    本文实例为大家分享了Android实现简易的闹钟功能的具体代码,供大家参考,具体内容如下 主要是通过广播,实现一个闹钟的简易功能。 实现效果如下: 主界面为一个简易的设置闹钟Butt...
    99+
    2024-04-02
  • python入门之tkinter实现简
    这次练习的题目是实现一个简单的RSS功能,需要了解的知识点: tkinter,在上一篇《简单的记事本》中已经了解了一些tkinter的用法,在这里延续了上一篇,加深一下印象。 urllib,HTMLPaser库的使用,注意python3...
    99+
    2023-01-31
    入门 python tkinter
  • python库pydantic的简易入门教程
    目录一、简介二、安装三、常见模型1、BaseModel 基本模型2、递归模型3、GenericModel 通用模型(泛型):四、常用类型五、验证器六、配置七、与 mypy 一起使用总...
    99+
    2024-04-02
  • 【Python】科学计算库Scipy简易入门
    0.导语 Scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。 Scipy是由针...
    99+
    2023-10-12
    python scipy 开发语言
  • python实现简易ATM
    环境:python2.7可以进一步完善# -*- coding: utf-8 -*- print u"+========================================+" print u"+=============201...
    99+
    2023-01-31
    简易 python ATM
  • js实现简单圆盘时钟
    本文实例为大家分享了js实现简单圆盘时钟的具体代码,供大家参考,具体内容如下 预览图: 代码: css: <style> .disc { ...
    99+
    2024-04-02
  • Python实现模拟时钟代码推荐
    Python实现模拟时钟代码推荐 # coding=utf8 import sys, pygame, math, random from pygame.locals import * from date...
    99+
    2022-06-04
    时钟 代码 Python
  • 简明易懂的数据库入门教程
    数据库是用于存储和管理数据的系统。它可以帮助我们组织和检索大量数据,并提供数据安全性和一致性保证。下面是一个简明易懂的数据库入门教程...
    99+
    2023-09-13
    数据库
  • Qt实现简易计时器的示例代码
    目录一、项目介绍二、项目基本配置三、UI界面设计四、主程序实现4.1 mainwindow.h头文件4.2 mainwindow.cpp源文件五、效果演示一、项目介绍 计时器实现四个...
    99+
    2024-04-02
  • python实现简易猜数小游戏
    目录程序思想:具体代码:近几天闲着没事开始学了些python,看了看之前写过的代码,把写过的基础的几个程序写进博客,今天是第一个。一个可以说简单的不能再简单的小程序—&m...
    99+
    2024-04-02
  • 用JavaScript实现简单网页时钟
    利用JavaScript实现网页时钟,效果如下图所示: 首先在body中完成表盘、指针的资源载入: <div><img src="../../image/cl...
    99+
    2024-04-02
  • Python实现简易凯撒密码的示例代码
    目录概念及原理实现过程破解原理及实现概念及原理 根据百度百科上的解释,凯撒密码是一种古老的加密算法。 密码的使用最早可以追溯到古罗马时期,《高卢战记》有描述恺撒曾经使用密码来传递信息...
    99+
    2024-04-02
  • Python基础 用Python实现时钟
    语言:Python IDE:Python.IDE编写时钟程序,要求根据时间动态更新 代码思路 需求:5个Turtle对象, 1个绘制外表盘+3个模拟表上针+1个输出文字 Step1:建立Turtle对象并初始化 Step2:静态表盘绘制...
    99+
    2023-01-31
    时钟 基础 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作