八,使用python语言实现七段电子数码管绘制时间

1,导入库模块(注意在导入turtle库和time时,方法前一定要加入库名)

2,进行单端管间隔的绘制和单端数码管的绘制

3,使用分段函数去分别去定义单个数字的数码管的绘制,同时定义获取绘制的时间

4,定义主函数和调用主函数实现效果

完整代码和运行结果如下:

## 0、导入库模块
 
# import turtle                      #导入turtle库,方法前面一定要添加库名
from turtle import *  # 导入turtle库,方法前面不添加库名
from random import *  # 导入random库,方法前面不添加库名
import time  # 导入时间time,方法前面一定要添加库名
 
 
## 1、绘制单段管间隔(绘制空隙)
 
def drawGap():  # 定义绘制间隔函数def drawGap():
    penup()  # 将画笔设置飞行模式
    fd(5)  # 画笔向前行走5像素
 
 
## 2、绘制单段数码管(绘制单段)
 
def drawLine(draw):  # 定义绘制单段管
    drawGap()  # 调用绘制间隔函数(函数的调用与函数的嵌套)
    if draw:
        pendown()  # 如果绘制将画笔设置成画图状态
    else:
        penup()  # 否侧将画笔设置成飞行状态
    fd(40)  # 将画笔前进四十像素,以画出一段数码管
    drawGap()
    right(90)  # 将画笔向右旋转90度
 
 
## 3、根据数字绘制七段数码管(绘制数字)
 
def drawDigit(digit):
    pencolor('red')
    drawLine(True) if digit in [2, 3, 4, 5, 6, 8, 9] else drawLine(False)
    # 运用if推导表达式调用函数
    """
        if digit in [2,3,4,5,6,8,9]:
                      drawLine(True)
                else:
                     drawLine(False)
     """
 
    # 画第二段
    pencolor(random(), random(), random())  # 将画笔颜色随机0-1取值
    drawLine(True) if digit in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine(False)
 
    # 画第三段
    pencolor(random(), random(), random())  # 将画笔颜色随机0-1取值
    drawLine(True) if digit in [0, 2, 3, 5, 6, 8] else drawLine(False)
 
    # 画第四段
    pencolor(random(), random(), random())  # 将画笔颜色随机0-1取值
    drawLine(True) if digit in [0, 2, 6, 8] else drawLine(False)
 
    # 画第五段
    left(90)  # 将海龟前进的方向向右旋转90度
    pencolor(random(), random(), random())  # 将画笔颜色随机0-1取值
    drawLine(True) if digit in [0, 4, 5, 6, 8, 9] else drawLine(False)
 
    # 画第六段
    pencolor(random(), random(), random())  # 将画笔颜色随机0-1取值
    drawLine(True) if digit in [0, 2, 3, 5, 6, 7, 8, 9] else drawLine(False)
 
    # 画第七段
    pencolor(random(), random(), random())  # 将画笔颜色随机0-1取值
    drawLine(True) if digit in [0, 1, 2, 3, 4, 7, 8, 9] else drawLine(False)
    left(180)  # 将海龟前进的方向旋转180度
    penup()  # 将画笔设置成飞行状态
    fd(20)  # 将每个数字之间设置二十像素间距
 
 
## 4、获取绘制时间(先从键盘上面获取,再优化到系统时间)
 
def drawData(date):  # 定义时间数字函数
    for i in date:  # 循环打印出时间的每一个数字
        drawDigit(eval(i))  # 将字符串转换成数字
 
 
## 5、定义主函数(设置画笔大小颜色画布等)
 
def main():  # 定义设置画笔大小颜色画布等
    setup(850, 350)  # 设置画布的大小
    bgcolor('black')  # 设置画布为黑色
    speed(300)  # 设置海龟画笔的速度为300
    penup()
    fd(-350)  # 设置画笔往左飞行350像素
    pensize(5)  # 设置画笔大小为5像素
    drawData(input('请输入您要绘制的生日日期:'))  # 从键盘输入生日日期
    hideturtle()  # 隐藏海龟画笔
    done()  # 设置时间结束
 
 
## 6、调用主函数实现效果
 
if __name__ == '__main__':  # 当主函数为脚本时调用执行主函数
    main()  # 调用主函数
 


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值