Python项目实践:绘制七段数码管

绘制一个时间的七段数码管
七段数码管:https://baike.baidu.com/item/七段数码管
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
思考:
1. 绘制一条线
2. 绘制七条线,同时规定每条线绘制的先后顺序
3. 根据不同的数字绘制这七条线中的某几条,构成一个数字
4. 传入一个时间,绘制多个数字
5. 获得系统时间,绘制多个数字
6. 获得系统时间,绘制多个数字,添加年月日、颜色等元素

  • 七段数码管是由七个基本线条构成的,所以首先要能够绘制这七个基本线条。可以看到七段数码管的七个线条是有固定顺序的,它构成了一个数字8的形状,我们可以从左边的一个位置开始,将它们逐一编号,形成一个行动的序列,这样的一个行动序列可以覆盖这七条线段。在这七段线条中不同的线条是否被绘制就能形成不同的数字。
  • 通过函数将功能做一个分割,定义一个函数drawLine,这个函数的作用就是画一条线。画一条线又分两种情况,是真实地画一条线,还是让海龟移飞过去并不画线,可以通过一个变量draw来控制,作为函数drawLine的参数。如果draw是真值,就让画笔落下,如果不是,就让画笔抬起来飞过去
  • 如果绘制中不加判断,调用drawLine,每一条线都会被绘制出来,绘制的结果就是一个数字8。可以设计一个函数drawDigit,根据参数digit来决定如何绘制对应的数字,digit取值范围为0~9的数字,判断当前给的整数是几,如果给出的数字是digit=8,那么每一条线段都要被真实绘制,如果给出的数字是digit=0,那么第一条线就不需要被真实绘制
  • 通过给出一个字符串时间,将字符串中的每个数字取出赋值给digit,让digit根据确定的规则绘制线段
# Drawdigit.py
import turtle

def drawLine(draw):  # 绘制单段数码管
    turtle.pendown() if draw else turtle.penup()
    turtle.forward(40)
    turtle.right(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</
  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值