绘制七段数码管时间

代码如下:

from turtle import     *     #导入turtle画图库,其方法前面一定不能添加库名
from random import     *     #导入random随机库,其方法前面一定不能添加库名
import time        #导入time时间库,其方法前面必须添加库名time
def drawGap():
    penup()    #讲画笔设置成飞行模式
    fd(5)        #将画笔前行5像素
    
# 绘制单段数码管
def drawLine(draw):    
    drawGap()           #调用间隙函数,画单段起始间隙
    if draw:
        pendown()       #将画笔设置工作模式(画线)
    else :
        penup()
    fd(20)              #将画笔向前行进20像素
    drawGap()           #第二次调用间隙函数画单段终止间隙
    right(90)           #将画笔向下(前进向右)旋转90°
    
# 绘制单个数字
def drawDigit(digit):
    #画第一段
    pencolor(random(),random(),random())                                        #设置random随机库设置画笔的颜色
    drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False)         #用if...else表达式画第一段单管
    #画第二段
    pencolor(random(),random(),random())                                           
    drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False)            
    #画第三段
    pencolor(random(),random(),random())               
    drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)            
    #画第四段
    pencolor(random(),random(),random())               
    drawLine(True) if digit in [0,2,6,8] else drawLine(False)
    #将画笔向上(前进向左)旋转90° 
    left(90)
    #画第五段
    pencolor(random(),random(),random())                
    drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)           
    #画第六段
    pencolor(random(),random(),random())               
    drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)           
    #画第七段
    pencolor(random(),random(),random())   
    drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)
    left(180)#画笔反向(旋转180°)
    penup() #讲画笔设置飞行模式
    fd(20)  #将画笔前进20像素

random()

# 获取绘制的数码管数字
def drawData(date):
    for i in date:
        if i=='-':
            write('年',font=("楷体",20,"normal"))
            fd(40)
        elif i=='=':
            write('月',font=("楷体",20,"normal"))
            fd(40)
        elif i=='+':
            write('日',font=("楷体",20,"normal"))
            fd(40)
        elif i==':':
            write('时',font=("楷体",20,"normal"))
            fd(40)
        elif i=='*':
            write('分',font=("楷体",20,"normal"))
            fd(40)
        elif i=='$':
            write('秒',font=("楷体",20,"normal"))
            fd(40)
        else:
            drawDigit(eval(i))
        


# 编写主函数(设置画布和画笔的属性等)
def main():
    setup(1500,350,0,200)     #设置画布的宽,高,左上角原点坐标位置
    pensize(5)
    speed(300)                #画笔工作速度为300Ps(像素)
    penup()
    fd(-600)                  #将画笔向左飞行600Ps
    #drawDigit(input('请输入绘制日期:'))      
                              #调用函数从键盘获取绘制日期数字
    drawData(time.strftime('%Y-%m=%d+%H*%M:%S$'))
    hideturtle()              #隐藏画笔
    done()                    #关闭画笔工作状态

time.time()
time.localtime()
time.strftime('%Y年%m月%d日%H时%M分%S秒')


# 6.调用主函数绘制效果图
if __name__=='__main__':         #当主函数为脚本代码时执行下面语句(函数)
    main()
结果如下:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值