turtle库绘制当前日期

本文介绍了一个使用Python的turtle模块来绘制当前日期(年、月、日)的数字时钟程序。通过定义函数drawline和draw来控制线条的绘制状态,实现不同数字的显示效果。最后利用datetime获取当前时间并调用这些函数完成日期的绘制。
import turtle
from datetime import datetime

def drawline(p,a,size):
    if a:
        p.pendown()
    else:
        p.penup()
    p.fd(size)
    p.penup()
    p.fd(5)
    p.right(90)
    

def draw(p,n,size):
    if n in [2,3,4,5,6,8,9] :
        drawline(p,1,size)
    else :
        drawline(p,0,size)

    if n in [0,1,3,4,5,6,7,8,9] :
        drawline(p,1,size)
    else :
        drawline(p,0,size)
    if n in [0,2,3,5,6,8,9] :
        drawline(p,1,size)
    else :
        drawline(p,0,size)
    if n in [0,2,6,8] :
        drawline(p,1,size)
    else :
        drawline(p,0,size)
    p.left(90)
    if n in [0,4,5,6,8,9] :
        drawline(p,1,size)
    else :
        drawline(p,0,size)
    if n in [0,2,3,5,6,7,8,9] :
        drawline(p,1,size)
    else :
        drawline(p,0,size)
    if n in [0,1,2,3,4,7,8,9] :
        drawline(p,1,size)
    else :
        drawline(p,0,size)
    p.left(180)
    p.penup()
    p.fd(20)
def main():
    p=turtle
    p.setup (0.7,0.5)
    p.pensize(2)
    p.penup()
    p.speed(10)
    p.hideturtle()
    p.setx(-400)
    time=datetime.now()
    for i in str(time.year):
        draw(p,eval(i),50)
    p.fd(30)
    p.write("年",font=("微软雅黑",20, "normal"))
    p.fd(50)
    for i in str(time.month):
        draw(p,eval(i),50)
    p.fd(30)
    p.write("月",font=("微软雅黑", 20, "normal"))
    p.fd(50)
    for i in str(time.day):
        draw(p,eval(i),50)
    p.fd(30)
    p.write("日",font=("微软雅黑",20, "normal"))
    p.exitonclick()
main()

  

转载于:https://www.cnblogs.com/breakcozy/p/6725296.html

Python中,我们可以利用Turtle创建一个简单的图形界面来模拟七段码管显示当前日期Turtle主要用于创建动画效果,虽然它并不直接支持复杂的据可视化,但我们可以通过一些创意的方式来间接实现。以下是基本步骤: 1. 首先,需要安装turtle,如果尚未安装可以使用`pip install turtle`命令安装。 2. 导入turtle模块并设置背景颜色。 3. 创建一个函,用于绘制每个七段码的一个基本形状。因为七段码管有多种状态,我们通常会用几个基本图形组合起来表示。 4. 使用for循环遍历日期,将每个字转换为其对应的七段图形,并移动turtle的位置来显示下一个。 5. 将日期字符串拆分成单个字符,然后逐个绘制。 以下是一个简化的示例代码: ```python import turtle from datetime import datetime # 定义七段码管的基本形状 def draw_digit(digit): if digit == '0': turtle.penup() turtle.goto(-40, -20) turtle.pendown() turtle.forward(80) turtle.left(90) turtle.forward(60) turtle.left(90) turtle.forward(60) turtle.left(90) turtle.forward(80) elif digit == '1': turtle.penup() turtle.goto(-40, -20) turtle.pendown() turtle.right(45) turtle.forward(75) turtle.right(135) turtle.forward(75) ... (添加剩余6个字的绘制) # 设置窗口大小,背景颜色 turtle.bgcolor('black') turtle.color('white') # 获取当前日期 now = datetime.now().strftime("%d%m%y") date_numbers = [char for char in now] # 绘制日期 for digit in date_numbers: draw_digit(digit) turtle.right(90) # 移动到下一个位置 turtle.forward(50) # 结束程序 turtle.done()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值