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()

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值