10 实例:七段数码管绘制
注意本文题目来源为Python123平台和中国大学MOCC的《Python语言程序设计》课程, 主讲老师:嵩天、黄天羽、礼欣。如有侵权,立删。
·
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语言程序设计》课程, 主讲老师:嵩天、黄天羽、礼欣。如有侵权,立删。

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