用Turtle绘制七段晶体管显示时间和日期

本文介绍了一个使用Python的Turtle库绘制七段晶体管显示当前时间和日期的程序。通过自定义函数绘制数字0-9,再组合成时间和日期,每个部分采用不同颜色区分。程序包括自定义绘制间隙、单段横线、七段晶体管数字和完整时间和日期的函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用Turtle绘制七段晶体管显示时间和日期

设计思路:

自定义绘制间隙函数—>自定义绘制单段横线函数—>自定义绘制七段晶体管数字0-9函数—>自定义绘制时间和日期函数—>设计并调用主函数

import turtle as t    
import time           //引入库函数
def drawGab():          //自定义函数绘制间隙
    t.penup()
    t.fd(5)      

def drawLine(line):     //自定义函数绘制单段横线
    drawGab()
    t.pendown() if line else t.penup()    //注意这里简写的if-else格式:<表达式1> if(条件) else <表达式2>
    t.fd(20)    //在决定是否抬起画笔后不要忘记向前移动
    drawGab()
    t.right(90)    //不要忘记转换角度

def drawDigit(digit):       //绘制七段晶体管数字0-9
    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)
    t.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)
    t.right(180)     //注意将角度变为原先的起始方向
    t.penup()       //抬笔!抬笔!抬笔!
    t.fd(20)          //向前移动,为绘制下一个数字做准备

def drawTime(time):       //自定义函数显示时间和日期
    t.pencolor("red")       //画笔颜色可以自定义
    for i in time:         //不要忘记for循环,以及需要注意for循环/if/自定义函数的格式
        if i=="+":
            t.write("年",font=("宋体",20,"normal"))    //设置字体格式,这里需要注意turtle.wrile()及font()函数的使用格式
            t.pencolor("red")
            t.fd(40)
        elif i=="-":
            t.write("月",font=("宋体",20,"normal"))
            t.pencolor("red")
            t.fd(40)
        elif i=="*":
            t.write("日",font=("宋体",20,"normal"))
            t.pencolor("purple")
            t.fd(70)
        elif i=="/":
            t.write("时",font=("宋体",20,"normal"))
            t.pencolor("green")
            t.fd(40)
        elif i=="&":
            t.write("分",font=("宋体",20,"normal"))
            t.pencolor("blue")
            t.fd(40)
        elif i=="#":
            t.write("秒",font=("宋体",20,"normal"))     //时间绘制已经结束,不需要再设置字体格式
        else:
            drawDigit(eval(i))    //注意这里需要把字符转换为数字

def main():       //设计主函数
    t.setup(1300,800,0,0)       //设置画布大小
    t.pensize(5)
    t.penup()           //控制画笔起始位置,为绘图做准备
    t.fd(-450)          //画笔左移
    drawTime(time.strftime("%Y+%m-%d*%H/%M&%S#",time.localtime()))      //调用时间函数获取时间并将时间值传给自定义函数drawTime()
    t.hideturtle()       //绘图结束后隐藏小乌龟
    t.done()

main()          //调用主函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值