1.问题分析

可以用turtle画图体系进行画图,让特定的数码管的横杠亮就可以表示不同的数字。

2.绘制结果分析

3.七段数码管绘制实例

3.1 基本思路

3.2 步骤

步骤1

import turtle as t
for i in range(1,5):
    t.fd(30)
    t.penup()
    t.fd(5)
    t.right(90)
    t.fd(5)
    t.pendown()
t.fd(-5)
t.left(90)
t.penup()
t.fd(5)
t.pendown()
for i in range(1,4):
    t.fd(30)
    t.penup()
    t.fd(5)
    t.right(90)
    t.fd(5)
    t.pendown()

步骤2

1.turtle.hideturtle()

用于隐藏小海龟的图标

2.注意True首字母大写

import turtle#引入海龟绘图体系
def drawline(draw):#绘图单段数码管
    if draw:
        turtle.pendown()
    else:
        turtle.penup()
    turtle.fd(40)#只有为真值时,笔放下绘画出痕迹
    turtle.right(90)#不管放不放,画笔都可以转向
def drawdigit(digit):
    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)
    turtle.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)
    turtle.left(180)
    turtle.penup()#再转向一号方向
    turtle.penup()#为绘制后续数字确定位置
    turtle.fd(20)
def drawdate(date):
    for i in date:
        drawdigit(eval(i))
def main():
    turtle.setup(800,350,200,200)#绘制窗体
    turtle.penup()
    turtle.fd(-300)#绘制画笔的初始位置
    turtle.pensize(5)
    turtle.pencolor("purple")
    drawdate('20181101')
    turtle.hideturtle()
    turtle.done()

main()

步骤3:获取系统时间

import turtle#引入海龟绘图体系
import time
def drawline(draw):#绘图单段数码管
    if draw:
        turtle.pendown()
    else:
        turtle.penup()
    turtle.fd(40)#只有为真值时,笔放下绘画出痕迹
    turtle.right(90)#不管放不放,画笔都可以转向
def drawdigit(digit):
    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)
    turtle.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)
    turtle.left(180)
    turtle.penup()#再转向一号方向
    turtle.penup()#为绘制后续数字确定位置
    turtle.fd(20)
def drawdate(date):
    turtle.pencolor("red")
    for i in date:
        if i=="-":
            turtle.write("年",font=("Arial",18,"normal"))
            turtle.pencolor("green")
            turtle.fd(40)
        elif i=="=":
            turtle.write("月",font=("Arial",18,"normal"))
            turtle.pencolor("blue")
            turtle.fd(40)
        elif i=="+":
            turtle.write("日",font=("Arial",18,"normal"))
            turtle.pencolor("blue")
        else:
            drawdigit(eval(i))
def main():
    turtle.setup(800,350,200,200)#绘制窗体
    turtle.penup()
    turtle.fd(-300)#绘制画笔的初始位置
    turtle.pensize(5)
    drawdate(time.strftime('%Y-%m=%d+',time.gmtime()))
    turtle.hideturtle()
    turtle.done()
main()

3.3 举一反三

 

注意 

本文题目来源为Python123平台和中国大学MOCC的《Python语言程序设计》课程, 主讲老师:嵩天、黄天羽、礼欣。如有侵权,立删。

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐