用python绘制七段数码管时间

运用Function函数time库制作

1.导入库模块

#import turtle         #导入turtle画图库 其方法前面必须添加库名turtle
from turtle import*   #导入turtle画图库,其方法前面一定不能添加库名
from random import*   #导入random随机库,其方法前面一定不能添加库名
import time           #导入time时间库,其方法前面必须要添加库名time

2.绘制单段数码管的间隙

def drawGap ():
    penup() #将画笔设置成飞行模式
    fd(5) #将画笔前行5像素

3.绘制单段数码管

def drawLine(draw):
    drawGap ()       #调用间隙函数,画单段的起始间隙
    if draw:
        pendown()
    else:
        penup()
    fd(20)          #将画笔向前进20像素
    drawGap()       #第二次调用间隙函数,画单段的终止间隙
    
    right(90)       #将画笔向下(前进向右)旋转90度
        

4.绘制单个数字

def drawDigit(digit):
   #画第1段
    pencolor(random(),random(),random()) 
    #用random随机库函数设置画笔的颜色
    drawLine(True) if digit in [3,4,5,6,8,9] else drawLine(False)
    #1用if...else表达式画第一段单管
    
    #画第2段
    pencolor(random(),random(),random()) 
    #用random随机库函数设置画笔的颜色
    drawLine(True) if digit in[0,1,3,4,5,6,8,9] else drawLine(False)
    
    #画第3段
    
    pencolor(random(),random(),random()) 
    #用random随机库函数设置画笔的颜色
    drawLine(True) if digit in[0,2,3,5,6,8,9] else drawLine(False)
    
    
    #画第4段
    
    pencolor(random(),random(),random()) 
    #用random随机库函数设置画笔的颜色
    drawLine(True) if digit in[2,3,4,5,6,8,9] else drawLine(False)
    left(90)      #将画笔向上(前进向左)旋转90度
    
    #画第5段
    
    pencolor(random(),random(),random()) 
    #用random随机库函数设置画笔的颜色
    drawLine(True) if digit in[4,5,6,8,9] else drawLine(False)
    
    #画第6段
    
    pencolor(random(),random(),random()) 
    #用random随机库函数设置画笔的颜色
    drawLine(True) if digit in[0,2,3,4,5,6,8,9]else drawLine(False)        
    
     #画第7段
    
    pencolor(random(),random(),random()) 
    #用random随机库函数设置画笔的颜色
    drawLine(True) if digit in[2,3,4,5,6,8,9] else drawLine(False)
    
    left(180)    #将画笔旋转180度
    penup()     #将画笔设置飞行模式
    fd(20)      #将画笔前进20像素
random()
for i in range(6):
    pencolor(random(),random(),random())
    pensize(8)
    fd(200)
    left(60)

5.获取绘制的数码管数字

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)
            
        drawDigit(eval(i))       #将获取的字符串转化为数值类型

6.编写主函数(设置画布和画笔的属性等)

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

7.调用主函数绘制效果图

if __name__ =='__main__':     #当主函数为脚本代码时执行下面语句(函数)
    main()

你可能感兴趣的:(1024程序员节)