使用python的turtle库模拟七段数码管来显示时间

画正方形

import turtle

turtle.pendown()        # 落下画笔,开始绘图
turtle.speed(10)        # 设置画图的速度
for x in range(100):
    turtle.forward(x)   # 直行x个像素的长度
    turtle.left(90)     # 逆时针转90度

turtle.done()           # 不关闭绘图窗口

在这里插入图片描述

绘制五角星

import turtle

turtle.color("red", "yellow")   # 同时设置画笔颜色pencolor=color1,填充颜色fillcolor=color2
turtle.pensize(3)               # 设置画笔的粗细
turtle.speed(10)

turtle.bgcolor("pink")          # 设置背景色

turtle.begin_fill()             # 准备开始填充 (填充的颜色是yellow)

for i in range(5):
    turtle.forward(100)  
    turtle.right(144)           # 顺时针转144度

turtle.end_fill()               # 结束填充

turtle.penup()                  # 抬起画笔
turtle.goto(-30, -50)           
turtle.write("画完了")           # 写入文本

turtle.hideturtle()             # 隐藏箭头
turtle.done()

在这里插入图片描述

数字钟

"""
注意: 每个goto语句后面都要加上turtle.setheading(0), 设置初始角度向右
"""

import datetime
import turtle

time = str(datetime.datetime.now())  # 2021-05-24 23:25:58.281906
year = time[0:4]
month = time[5:7]
day = time[8:10]
hour = time[11:13]
minute = time[14:16]
second = time[17:19]

print(time)
print(year)
print(month)
print(day)
print(hour)
print(minute)
print(second)


# 绘制单个数码管
def drawOneDigit(myList):
    turtle.pensize(3)
    turtle.speed(50)
    turtle.hideturtle()

    for i in range(7):
        if myList[i] == 1:
            turtle.pendown()
        else:
            turtle.penup()
        turtle.forward(40)
        if i != 3:
            turtle.right(90)


# 绘制数字num
def drawDigit(num):
    myList = []
    if num == 0:
        myList = [0, 1, 1, 1, 1, 1, 1]
    elif num == 1:
        myList = [0, 1, 0, 0, 0, 0, 1]
    elif num == 2:
        myList = [1, 0, 1, 1, 0, 1, 1]
    elif num == 3:
        myList = [1, 1, 1, 0, 0, 1, 1]
    elif num == 4:
        myList = [1, 1, 0, 0, 1, 0, 1]
    elif num == 5:
        myList = [1, 1, 1, 0, 1, 1, 0]
    elif num == 6:
        myList = [1, 1, 1, 1, 1, 1, 0]
    elif num == 7:
        myList = [0, 1, 0, 0, 0, 1, 1]
    elif num == 8:
        myList = [1, 1, 1, 1, 1, 1, 1]
    elif num == 9:
        myList = [1, 1, 1, 0, 1, 1, 1]

    drawOneDigit(myList)
    # turtle.clear()


# 绘制年份
def drawYear():
    turtle.pencolor("red")
    turtle.penup()
    turtle.goto(-200, 50), turtle.setheading(0)
    drawDigit(int(year[0]))
    turtle.penup()
    turtle.goto(-150, 50), turtle.setheading(0)
    drawDigit(int(year[1]))
    turtle.penup()
    turtle.goto(-100, 50), turtle.setheading(0)
    drawDigit(int(year[2]))
    turtle.penup()
    turtle.goto(-50, 50), turtle.setheading(0)
    drawDigit(int(year[3]))

    turtle.penup()
    turtle.goto(0, 15), turtle.setheading(0)
    turtle.write("年", font=('Arial', 40, 'normal'))


# 绘制月份
def drawMouth():
    turtle.pencolor("green")
    turtle.penup()
    turtle.goto(50, 50), turtle.setheading(0)
    drawDigit(int(month[0]))
    turtle.penup()
    turtle.goto(100, 50), turtle.setheading(0)
    drawDigit(int(month[1]))

    turtle.penup()
    turtle.goto(150, 15), turtle.setheading(0)
    turtle.write("月", font=('Arial', 40, 'normal'))


# 绘制日期
def drawDay():
    turtle.pencolor("blue")
    turtle.penup()
    turtle.goto(200, 50), turtle.setheading(0)
    drawDigit(int(day[0]))
    turtle.penup()
    turtle.goto(250, 50), turtle.setheading(0)
    drawDigit(int(day[1]))

    turtle.penup()
    turtle.goto(300, 15), turtle.setheading(0)
    turtle.write("日", font=('Arial', 40, 'normal'))


# 绘制时
def drawHour():
    turtle.penup()
    turtle.goto(-100, -50), turtle.setheading(0)
    drawDigit(int(hour[0]))
    turtle.penup()
    turtle.goto(-50, -50), turtle.setheading(0)
    drawDigit(int(hour[1]))

    turtle.penup()
    turtle.goto(-0, -100), turtle.setheading(0)
    turtle.write("时", font=('Arial', 40, 'normal'))


# 绘制分钟
def drawMinute():
    turtle.pencolor("black")
    turtle.penup()
    turtle.goto(50, -50), turtle.setheading(0)
    drawDigit(int(minute[0]))
    turtle.penup()
    turtle.goto(100, -50), turtle.setheading(0)
    drawDigit(int(minute[1]))

    turtle.penup()
    turtle.goto(150, -100), turtle.setheading(0)
    turtle.write("分", font=('Arial', 40, 'normal'))


# 绘制秒
def drawSecond():
    turtle.pencolor("purple")
    turtle.penup()
    turtle.goto(200, -50), turtle.setheading(0)
    drawDigit(int(second[0]))
    turtle.penup()
    turtle.goto(250, -50), turtle.setheading(0)
    drawDigit(int(second[1]))

    turtle.penup()
    turtle.goto(300, -100), turtle.setheading(0)
    turtle.write("秒", font=('Arial', 40, 'normal'))


if __name__ == '__main__':
    drawYear()
    drawMouth()
    drawDay()
    drawHour()
    drawMinute()
    drawSecond()

    turtle.done()

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值