Python实例7:七段数码管绘制

2023-05-16

Python实例7:七段数码管绘制

基本思路:

  1. 绘制单个数字对应的数码管;
  2. 获得一串数字,绘制对应的数码管;
  3. 获取当前系统时间,绘制对应的数码管;

步骤:

  1. 七段数码管由7个基本线条组成;可以有固定顺序;显示不同的线条;
  2. 获取一段数字,绘制多个数码管;
  3. 获取当前时间,以使用数码管显示时间;
# NixieTube.py
import turtle, time
def drawGap():
    turtle.penup()
    turtle.fd(5)
def drawLine(draw):      #绘制单段数码管
    drawGap()
    turtle.pendown() if draw else turtle.penup()    #如果draw为真值则画,如果不是则抬起画笔移动
    turtle.fd(40)     #向该方向行进40像素
    drawGap()
    turtle.right(90)  #转向90度
def drawDigit(digit):    #根据数字绘制七段数码管
    drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False)
    drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False)
    drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)
    drawLine(True) if digit in [0,2,6,8] else drawLine(False)
    turtle.left(90)
    drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)
    drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)
    drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)
    turtle.left(180)
    turtle.penup()    #为绘制后续数字确定位置
    turtle.fd(20)     #...
def drawDate(date):   #获得要输出的数字,日期格式为:'%Y-%m=%d+'
    turtle.pencolor("red")
    for i in date:
        if i == '-':
            turtle.write('年',font=("Arial",18,"normal"))
            turtle.pencolor("green")
            turtle.fd(40)
        elif i == '=':
            turtle.write('月',font=("Arial",18,"normal"))
            turtle.pencolor("blue")
            turtle.fd(40)
        elif i == '+':
            turtle.write('日',font=("Arial",18,"normal"))
        else:
            drawDigit(eval(i))   #通过eval()函数将数字变为整数
def main():
    turtle.setup(800, 350, 200, 200)     #设置画布大小
    turtle.penup()        
    turtle.fd(-300)      #当前画笔初始绘制所在位置
    turtle.pensize(5)
    drawDate(time.strftime('%Y-%m=%d+',time.gmtime()))   #调用函数
    turtle.hideturtle()
    turtle.done()
main()

点赞,关注,收藏👍,➕,👀点赞,关注,收藏👍,➕,👀点赞,关注,收藏👍,➕,👀
😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘
💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python实例7:七段数码管绘制 的相关文章

随机推荐

  • Semaphore的注意点

    seamphore大家玩的都比较多 xff0c 使用起来也很简单 xff0c 获取令牌和释放 xff0c 但是其中坑却不少 xff0c 而且会让人很难发现 xff0c 希望能通俗易懂的小例子讲明白其中的几个道理 一 线程都被阻塞了 xff1
  • tinymix的命令格式

    come from https blog csdn net jinchengzhou article details 82796888 最近在调试安卓系统的alsa驱动 xff0c 一开始搞不清楚tinymix要怎么用 xff0c 今天终于
  • Ubuntu Core 20新系统介绍

    Ubuntu Core 20是一个轻量 xff0c 容器化 xff0c 基于Ubuntu 20 04 LTS且为物联网设备和嵌入式系统所打造的版本 xff0c 现在已经普遍可用 新版本内建的安全更新严格限制策略使创新者能够开发高安全的产品和
  • python库Argparse中的可选参数设置 action=‘store_true‘ 的用法

    store true 是指带触发action时为真 xff0c 不触发则为假 通俗讲是指运行程序是否带参数 看例子就明白了 一 没有default import argparse parser 61 argparse ArgumentPar
  • 小熊派鸿蒙开发板环境搭建过程(HarmonyOS BearPi-HM Nano)

    小熊派鸿蒙开发板环境搭建过程 实验环境 xff1a 小熊派开发板 xff0c 基于Hi3861V100海思芯片Win10系统Oracle VM VirtualBox虚拟机Ubuntu系统安装包官方提供环境教程 xff08 基本按照这个步骤来
  • ubuntu安装新版本的clang-format 9

    ubuntu安装新版本的clang format 默认可能是clang format 6 0 旧版本的某些配置比如AlignConsecutiveMacros不支持 sudo apt get update sudo apt get inst
  • Android 视频 YUV i420格式转换为位图Bitmap

    Android 视频 YUV i420格式转换为位图Bitmap YUV基础描述 YUV YCbCr xff0c 图像除了RGB xff0c 还有YUV 定义 xff1a 是电视系统所采用的一种颜色编码方法 Y 标识明亮度 xff0c 也就
  • 谷粒学院——第二章、项目搭建

    一 创建父工程 1 创建sprigboot工程guli parent 在idea开发工具中 xff0c 使用 Spring Initializr 快速初始化一个 Spring Boot 模块 xff0c 版本使用 xff1a 2 2 1 R
  • 欧美网站风格特点

    评论一 xff1a 1 简洁 xff0c 平淡 xff0c 严谨 xff08 不习惯艳丽 xff0c 花销的色彩 xff09 2 倾向于将首页做成各类功能 板块的引导界面 xff0c 首页不会放置太多的内容 xff0c 即使有内容表现 xf
  • 2012年展望

    由于各种原因 xff0c 客观的 主观的 不过归根结底还是主观的多一些 xff0c 2011年整体过的很颓废 xff0c 上班大多在上网 xff0c 工作上几乎没有一点成绩 xff0c 自己也是很不满意 2012年世界末日都快来了 xff0
  • Ubuntu允许root远程登陆方法

    Ubuntu中允许root用户远程登录 编辑配置文件 xff1a sudo vim etc ssh sshd config 将PermitRootLogin prohibit password更改为 xff1a PermitRootLogi
  • 航模的遥控与电调

    遥控接收机解码出遥控器的信号 xff0c 有多少路的解多少路 xff0c 解出来的其实就是pwm的脉冲信号 xff0c T 61 20ms 脉宽是1 2ms xff0c 脉宽1ms时表示最小值 xff0c 脉宽2m时表示最大值 xff08
  • Flash某些错误解决

    运行是提示VerifyError 1014 无法找到类 修改文件后 xff0c 加载的总是旧文件 xff1f 清理IE缓存试试
  • Shell编程入门学习

    文章目录 Shell编程Shell脚本的执行方式Shell的变量Shell的变量的介绍shell变量的定义 设置环境变量位置参数变量介绍基本语法 预定义变量基本介绍基本语法 运算符基本语法 条件判断判断语句常用判断条件 流程控制if 判断c
  • module.exports与exports,export与export default之间的关系和区别

    module exports与exports xff0c export与export default之间的区别及使用 这里我就以最简单的方法 xff0c 举例说明 CommonJS xff1a 使用module exports与export
  • Recipe terminated with error. Retry building the project.

    Recipe terminated with error Retry building the project 在vscode中运行latex中出现此错误时 xff0c 但之前又输入正常 首先检查文件是否保存在有中文路径中 试着将文件更换一
  • 在命令窗口如何退出命令窗口的文本输入回到命令行

    退出文本编辑或运行的程序 第一种情况 进入命令窗口下的文本输入 xff0c 或正在执行的代码 情况如图1所示 xff1a 图1 在这种情况下则按Ctrl 43 C则可退出 xff01 xff01 第二种情况 使用vi命令进入文本编辑器时退出
  • Latex/Markdown中将字母上下方插入字母数字

    Latex Markdown中将字母上下方插入字母数字 演示在typora软件里面插入Latex公式 通常在字母前面加入 mathop将 中的字母数字当作数学符号使用 xff1b 都加 mathop xff1a 1 xff1a 不加 lim
  • Python实例5:身体质量指数BMI问题分析

    Python实例5 xff1a 身体质量指数BMI问题分析 问题需求 xff1a 1 xff09 输入 xff1a 给定体重和身高值 xff1b 2 xff09 输出 xff1a BMI指标分类信息 xff08 国际和国内 xff09 xf
  • Python实例7:七段数码管绘制

    Python实例7 xff1a 七段数码管绘制 基本思路 xff1a 绘制单个数字对应的数码管 xff1b 获得一串数字 xff0c 绘制对应的数码管 xff1b 获取当前系统时间 xff0c 绘制对应的数码管 xff1b 步骤 xff1a