python--绘制七段数码管(复杂问题模块化)

话不多说,上代码

# -*- coding: utf-8 -*-
import turtle,time
def Draw_Gap():
    """在一根根数码管之间形成间隔"""
    turtle.penup()
    turtle.fd(8)
def Part_Draw(draw):
    """画出一根数码管"""
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(40)
    Draw_Gap()
    turtle.right(90)
def Comp_Draw(number):
    """根据数字绘制不同的数码管"""
    Part_Draw(True) if number in [2,3,4,5,6,8,9] else Part_Draw(False)
    Part_Draw(True) if number in [0,1,3,4,5,6,8,9] else Part_Draw(False)
    Part_Draw(True) if number in [0,2,3,5,6,8,9] else Part_Draw(False)
    Part_Draw(True) if number in [0,2,6,8] else Part_Draw(False)
    turtle.left(90)
    Part_Draw(True) if number in [0,4,5,6,8,9] else Part_Draw(False)
    Part_Draw(True) if number in [0,2,3,5,6,7,8,9] else Part_Draw(False)
    Part_Draw(True) if number in [0,1,2,3,4,7,8,9] else Part_Draw(False)
    turtle.left(180)
    turtle.penup()
    turtle.fd(20)
def Draw_Date(date):
    """这里可以把当前系统日期描绘出来,date格式为“%Y-%m=%d+”"""
    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"))
        else:
            Comp_Draw(eval(i))
def main():
    turtle.setup(800,350,200,200)
    turtle.penup()
    turtle.fd(-300)
    turtle.pensize(5)
    Draw_Date(time.strftime("%Y-%m=%d+",time.gmtime()))
    turtle.hideturtle()
    turtle.done()
main()

运行结果:
在这里插入图片描述
这是前段时间看的python课上老师讲的一个实例,没什么特别的地方,但是让我这个新手对函数的定义与复合使用有了新的认识;在面对一些复杂问题的时候,我们可以把问题模块化,一个个的去解决,这样就会容易的多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Python绘制七段数码管显示a-f的代码: ```python import turtle # 设置画笔大小和速度 turtle.pensize(5) turtle.speed(10) # 绘制a turtle.penup() turtle.goto(-200, 100) turtle.pendown() turtle.right(60) turtle.forward(100) turtle.right(120) turtle.forward(100) turtle.right(180) turtle.forward(50) turtle.right(60) turtle.forward(50) turtle.right(60) turtle.forward(50) turtle.right(180) turtle.forward(100) turtle.right(60) # 绘制b turtle.penup() turtle.goto(-50, 100) turtle.pendown() turtle.forward(100) turtle.right(90) turtle.forward(50) turtle.right(90) turtle.forward(100) turtle.right(90) turtle.forward(50) turtle.right(90) turtle.forward(100) turtle.right(90) # 绘制c turtle.penup() turtle.goto(100, 100) turtle.pendown() turtle.forward(100) turtle.right(90) turtle.forward(100) turtle.right(180) turtle.forward(100) turtle.right(90) turtle.forward(50) turtle.right(90) # 绘制d turtle.penup() turtle.goto(250, 100) turtle.pendown() turtle.right(180) turtle.forward(50) turtle.right(90) turtle.forward(100) turtle.right(90) turtle.forward(50) turtle.right(90) turtle.forward(100) turtle.right(90) # 绘制e turtle.penup() turtle.goto(-200, -50) turtle.pendown() turtle.right(180) turtle.forward(100) turtle.right(90) turtle.forward(50) turtle.right(90) turtle.forward(100) turtle.right(90) turtle.forward(50) turtle.right(90) turtle.forward(100) turtle.right(90) # 绘制f turtle.penup() turtle.goto(-50, -50) turtle.pendown() turtle.right(180) turtle.forward(50) turtle.right(90) turtle.forward(100) turtle.right(90) turtle.forward(50) turtle.right(90) turtle.forward(50) turtle.right(90) turtle.forward(50) # 隐藏画笔 turtle.hideturtle() turtle.done() ``` 运行上述代码后,将在屏幕上绘制出a-f的七段数码管效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值