《Python语言程序设计基础》嵩天著--实例7:七段数码管绘制注释

理解实例7花了些时间,在这里把个人理解贴在注释了。
同时随便修改了一下,画到以秒为单位了,仅供参考。
代码大部分时抄书上的,简单修改
突然发现贴上来可以激励我学Python,嘿嘿

# e7.2 DrawSevenSegDisplay.py
import turtle as t
import datetime as d
def gap():  # 绘制数码管间距
    t.up()  # 抬起画笔
    t.fd(5)  # 间距为5个像素
def line(draw):  # 单段数码管
    gap()  # 运行gap函数
    t.down() if draw else t.up() # 紧接gap函数的抬起然后放下
    t.fd(40) # 数码管的主体部分
    gap() #  画完后在继续gap
    t.right(90) 
def digit(d): # 七段数码管  # True 和False为line的参数,决定 t.done()
    line(True) if d in [2,3,4,5,6,8,9] else line(False) # 中间的横线   
    line(True) if d in [0,1,3,4,5,6,7,8,9] else line(False) # 右下竖线
    line(True) if d in [0,2,3,5,6,8,9] else line(False) # 下面横线
    line(True) if d in [0,2,6,8] else line(False)   # 左下竖线
    t.left(90) # 画完左下竖线后,将向右的90°转左90°画左上竖线
    line(True) if d in [0,4,5,6,8,9] else line(False)   # 左上竖线
    line(True) if d in [0,2,3,5,6,7,8,9] else line(False)   # 上面横线
    line(True) if d in [0,1,2,3,4,7,8,9] else line(False)  #右上竖线
    t.left(180) # 画完右上竖线时,头向负半轴,转180°向正半轴
    t.up()
    t.fd(20) # 为绘制后续数字确定位置,两个数字的间隔
def date(x):
    t.pencolor("red") # 年的颜色 可以将颜色放到else里边使数字颜色一致
    for i in x:
        if i == "-": # 绘制时间单位 下同
            t.write("年",font=("Arial",18,"normal")) # font 为字体格式
            t.pencolor("green") # 绘制完年后改变颜色,下同  可仅改变单位颜色
            t.fd(40)
        elif i == "=":
            t.write("月",font=("Arial",18,"normal"))
            t.pencolor("blue")
            t.fd(40)  
        elif i == "+":
            t.write("日",font=("Arial",18,"normal"))
            t.pencolor("purple")
            t.fd(40)
        elif i == "/":
            t.write("时",font=("Arial",18,"normal"))
            t.pencolor("black")
            t.fd(40)
        elif i == "|":
            t.write("分",font=("Arial",18,"normal"))
            t.pencolor("gold")
            t.fd(40)
        elif i == ";": 
            t.write("秒",font=("Arial",18,"normal")) 
            t.pencolor("grey")
            t.fd(40)
        else: # 画数字
            digit(eval(i)) 
def main():
    t.setup(800,350) 
    t.up()
    t.fd(-600) # 确定初始位置
    t.pensize(5)
    t.speed(0) # 加快了绘制速度,之前画得好慢,等不及。0为最快,10为其次快,1为最慢
    date(d.datetime.now().strftime("%Y-%m=%d+%H/%M|%S;")) # 调用函数
    t.hideturtle() 
    t.done()
main()

就这样叭,码字不易。

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值