七段数码管绘制当前日期

代码如下

#ecoding=utf-8
from datetime import *
from turtle import *
def drawGrp():
    penup()
    fd(5)
def drawline(a):
    drawGrp()
    pendown() if a else penup()
    fd(40)
    right(90)
def drawDigit(d):
    drawline(True) if d in [2,3,4,5,6,8,9] else drawline(False)
    drawline(True) if d in [1,3,4,5,6,7,8,9,0] else drawline(False)
    drawline(True) if d in [2,3,5,6,8,9,0] else drawline(False)
    drawline(True) if d in [2,6,8,0] else drawline(False)
    left(90)
    drawline(True) if d in [4,5,6,8,9,0] else drawline(False)
    drawline(True) if d in [2,3,5,6,7,8,9,0] else drawline(False)
    drawline(True) if d in [1,2,3,4,7,8,9,0] else drawline(False)
    right(180)
    penup()
    fd(20)
def drawDate(date):
    for i in date:
        if i == '-':
            write('年',font=("Arial",18,"normal"))
            pencolor("green")
            fd(40)
        elif i == '=':
            pencolor("blac")
            write('月', font=("Arial", 18, "normal"))
            pencolor("blue")
            fd(40)
        elif i == '+':
            write('日', font=("Arial", 18, "normal"))
        else:
            drawDigit(eval(i))
def main():
    setup(800,350,200,200)
    penup()
    fd(-300)
    pensize(5)
    drawDate(datetime.now().strftime("%Y-%m=%d+"))
    hideturtle()
main()

解释:需要datetime库(获取当前时间),turtle用于绘制过程。主要练习了turtle的几种方法的使用。以及对程序整体流程的体验。

主要知识点如下:

  • if 的简单写法
1.常规
if a>b:
    c = a
else:
    c = b
2.表达式
c = a if a>b else b 
  • turtle库的方法
1.penup()#抬起画笔
2.fd(n)#前进n个位置
3.right()#画笔右转
4.pencolor()#画笔颜色
5.write('年',font=('Arial',18,'normal'))#字体、大小、类型
6.pensizi()#画笔粗细
7.setup(800,350,200,200)#画板大小
  • datetime库用法
datetime.now().strftime("%Y-%m=%d+")
.now()方法获取当前日期
.strftime('%Y%m%d')是格式化方法
得到例如:20170901

你可能感兴趣的:(七段数码管绘制当前日期)