利用七段数码管输出当前日期及时间 && 绘制出某人的生日,并计算输出当前年龄。

原题:用七段晶体管输出当前日期及时间。

# -*- coding:utf-8 -*-
import turtle
import time

def drawGap(): #绘制数码管间隔
    turtle.penup()
    turtle.fd(5)

def drawLine(draw):   #绘制单段数码管
    drawGap()
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(20)
    drawGap()
    turtle.right(90)

def drawDigit(d): #根据数字绘制七段数码管
    #这些if判断顺序不能改变,它们是根据七段数码管的绘制顺序绘制的
    drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False) #第1条晶体管 #如:数字1、7没有1号晶体管
    drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False) #第2条晶体管
    drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False) #第3条晶体管
    drawLine(True) if d in [0,2,6,8] else drawLine(False) #第4条晶体管
    turtle.left(90)
    drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False) #第5条晶体管
    drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False) #第6条晶体管
    drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False) #第7条晶体管
    turtle.left(180)
    turtle.penup()
    turtle.fd(20)

def drawDate(date):
    turtle.pencolor("red")
    for i in date:
        if i == '-':
            turtle.write('年',font=("Arial", 20, "normal"))
            turtle.pencolor("green")
            turtle.fd(40)
        elif i == '+':
            turtle.write('月',font=("Arial", 20, "normal"))
            turtle.pencolor("pink")
            turtle.fd(40)
        elif i == '=':
            turtle.write('日',font=("Arial", 20, "normal"))
        elif i == '1':
            turtle.bk(30)
            drawDigit(eval(i))
        else:
            drawDigit(eval(i))

def drawTime(time):  #绘制时间
    turtle.pencolor("red")
    for i in time:
        if i == "-":
            turtle.write(":", font=("Arial", 20, "normal"))
            turtle.pencolor("green")
            turtle.fd(20)
        elif i == "+":
            turtle.write(":", font=("Arial", 20, "normal"))
            turtle.pencolor("pink")
            turtle.fd(20)
        elif i == "1":
            turtle.bk(30)
            drawDigit(eval(i))
        else:
            drawDigit(eval(i))

def main():
    turtle.setup(900, 350, 200, 200)
    turtle.penup()
    turtle.fd(-420)
    turtle.pensize(5)
    turtle.speed(10)
    #drawDate(datetime.datetime.now().strftime('%Y-%m=%d+'))
    drawDate(time.strftime("%Y-%m+%d=", time.gmtime()))
    turtle.fd(50)
    drawTime(time.strftime("%H-%M+%S", time.localtime()))

    turtle.hideturtle()
    turtle.done()
	
main()

改编题:利用七段数码段绘制出某人的生日,并计算输出当前年龄。

# -*- coding:utf-8 -*-
import turtle, datetime

def drawLine(draw):  # 绘制单段数码管
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(40)
    turtle.right(90)

def drawDigit(digit):  # 根据数字绘制七段数码管
    drawLine(True) if digit in [2, 3, 4, 5, 6, 8, 9] else drawLine(False)
    drawLine(True) if digit in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine(False)
    drawLine(True) if digit in [0, 2, 3, 5, 6, 8, 9] else drawLine(False)
    drawLine(True) if digit in [0, 2, 6, 8] else drawLine(False)
    turtle.left(90)
    drawLine(True) if digit in [0, 4, 5, 6, 8, 9] else drawLine(False)
    drawLine(True) if digit in [0, 2, 3, 5, 6, 7, 8, 9] else drawLine(False)
    drawLine(True) if digit in [0, 1, 2, 3, 4, 7, 8, 9] else drawLine(False)
    turtle.left(180)
    turtle.penup()
    turtle.fd(20)

def drawDate(date):  # 获得要输出的数字
    turtle.pencolor("red")
    for i in date:
        if i == '-':
            turtle.write('年',font=("Arial", 20, "normal"))
            turtle.pencolor("green")
            turtle.fd(40)
        elif i == '+':
            turtle.write('月',font=("Arial", 20, "normal"))
            turtle.pencolor("pink")
            turtle.fd(40)
        elif i == '=':
            turtle.write('日',font=("Arial", 20, "normal"))
        elif i == '1':
            turtle.bk(30)
            drawDigit(eval(i))
        else:
            drawDigit(eval(i))

def main():
    turtle.setup(1010, 350, 500, 200)
    turtle.penup()
    turtle.fd(-300)
    turtle.pensize(5)
    turtle.speed(10)
    Printf = turtle.Turtle()
    Printf.hideturtle()
    Printf.penup()

    year = input("请输入年:")
    month = input("请输入月:")
    day = input("请输入日:")
    drawDate("{}-{}+{}=".format(year,month,day))
    turtle.hideturtle()
    age = int(datetime.datetime.now().strftime('%Y')) - int(year)
    c_month = int(datetime.datetime.now().strftime('%m'))
    c_day = int(datetime.datetime.now().strftime('%d'))
    # print(age, c_month, c_day)
    if int(month) >= c_month:
        if int(day) > c_day:
            age -= 1
    print(age)

main()

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟敛寒林o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值