[python][学习代码]turtle、time库实例

实现功能

获取当前系统时间并用海龟画出来

不足/可改进的地方

  1. 绘画时间较长
  2. 要是可以每秒刷新一下就好了呀(就可以当个时钟了qwq)

代码

import turtle
import time 
    

def drawLine(draw): 
    turtle.speed(0)
    turtle.pensize(5)
    turtle.pendown()
    turtle.getscreen().colormode(255)
    turtle.color("red") if draw else turtle.pencolor(219,219,221)     

    turtle.left(30)
    turtle.fd(5)
    turtle.right(30)
    turtle.fd(20)          
    turtle.right(30)
    turtle.fd(5)
    turtle.right(120)
    turtle.fd(5)
    turtle.right(30)
    turtle.fd(20)
    turtle.right(30)
    turtle.fd(5)
    
    turtle.penup()
    turtle.right(150)
    turtle.fd(32.5)
    turtle.right(90)
    turtle.fd(5)

    
def drawLine2(draw): 
    turtle.speed(0)
    turtle.pensize(10)
    turtle.pendown()
    turtle.getscreen().colormode(255)
    turtle.color("red") if draw else turtle.pencolor(219,219,221)     

    turtle.left(30)
    turtle.fd(10)
    turtle.right(30)
    turtle.fd(40)          
    turtle.right(30)
    turtle.fd(10)
    turtle.right(120)
    turtle.fd(10)
    turtle.right(30)
    turtle.fd(40)
    turtle.right(30)
    turtle.fd(10)
    
    turtle.penup()
    turtle.right(150)
    turtle.fd(65)
    turtle.right(90)
    turtle.fd(10)
    
def drawDigit(d):  
    drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False)     
    drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False)     
    drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False)     
    drawLine(True) if d in [0,2,6,8] else drawLine(False)     
    turtle.fd(-5)
    turtle.left(90)
    turtle.fd(5)
    drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False)     
    drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False)     
    drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False)     
    turtle.fd(-5)
    turtle.left(180)
    turtle.penup()     
    turtle.fd(30) 
    
    
def drawDigit2(d):  
    drawLine2(True) if d in [2,3,4,5,6,8,9] else drawLine2(False)     
    drawLine2(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine2(False)     
    drawLine2(True) if d in [0,2,3,5,6,8,9] else drawLine2(False)     
    drawLine2(True) if d in [0,2,6,8] else drawLine2(False)     
    turtle.fd(-10)
    turtle.left(90)
    turtle.fd(10)
    drawLine2(True) if d in [0,4,5,6,8,9] else drawLine2(False)     
    drawLine2(True) if d in [0,2,3,5,6,7,8,9] else drawLine2(False)     
    drawLine2(True) if d in [0,1,2,3,4,7,8,9] else drawLine2(False)     
    turtle.fd(-10)
    turtle.left(180)
    turtle.penup()     
    turtle.fd(60) 

    
def drawDate(date):          
    for i in date:
            if i == '-':
                drawLine(True)
                turtle.fd(-10)
                turtle.left(90)
                turtle.fd(60)
            else:             
                drawDigit(eval(i))
                
def drawDate2(date):          
    for i in date:
            if i==':':
                turtle.pensize(20)
                turtle.penup()
                turtle.fd(20)
                turtle.left(90)
                turtle.fd(20)
                turtle.pendown()
                turtle.fd(-1)
                turtle.penup()
                turtle.left(180)
                turtle.fd(40)
                turtle.pendown()
                turtle.fd(-1)
                turtle.penup()
                turtle.left(180)
                turtle.fd(19)
                turtle.right(90)
                turtle.fd(60)
            else:
                drawDigit2(eval(i))
                

def main():     
    turtle.setup(1500, 600, 200, 200)
    turtle.penup()
    turtle.goto(-550,150)
    drawDate(time.strftime("%Y-%m-%d",time.gmtime()))
    turtle.goto(-550,-100)
    drawDate2(time.strftime("%H:%M:%S",time.localtime())) 
    turtle.hideturtle()     
    turtle.done() 
main()

猜你喜欢

转载自blog.csdn.net/m0_43424669/article/details/86665902