import turtle,datetime # 定义一个,用于绘制代码管的间隙 def draw_gap(): turtle.penup() turtle.forward(5) # 定义一个函数,用于绘制一段代码管,这里传入的参数输一个bool类型 def draw_line(draw): draw_gap() turtle.pendown() if draw else turtle.penup() turtle.forward(40) draw_gap() turtle.right(90) # 定义一个函数,用于绘制一个数字,也就是一个田子的代码管 def draw_digit(number): # 一开始是画田字中间的那一横 if number in [2, 3, 4, 5, 6, 8, 9]: draw_line(True) else: draw_line(False) # 画田字下右面的那一横 draw_line(True) if number in [0, 1, 3, 4, 5, 6, 7, 8, 9]else draw_line(False) # 绘制最下面的一横 draw_line(True) if number in [0, 2, 3, 5, 6, 8, 9] else draw_line(False) # 日左下角那一竖 draw_line(True) if number in [0, 2, 6, 8] else draw_line(False) # 这个时候要调整海归的指向 turtle.left(90) # 绘制日字左上角的那一横 draw_line(True) if number in [0,4,5,6,8,9] else draw_line(False) draw_line(True) if number in [0,2,3,5,6,7,8,9] else draw_line(False) draw_line(True) if number in [0,1,2,3,4,7,8,9] else draw_line(False) turtle.right(180) # 要记得先提笔,再改变海归的位置 turtle.penup() turtle.forward(20) # 定义一个函数,用于判断今年是闰年还是平年,再得出今天是今年的第几天 def get_day_count(year,month,day): # 闰年 if (year%4==0 and year%10==0) or year%400==0: month_day = [0, 31, 60, 91, 121, 152, 182, 213, 244, 247, 305, 335] day_count=month_day[month-1]+day return day_count else: month_day = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334] day_count=month_day[month-1]+day return day_count date=datetime.datetime.now().strftime("%Y-%m-%d") list1=date.split('-') year=eval(list1[0]) month=eval(list1[1]) day=eval(list1[2]) today=get_day_count(year, month, day) result=(today-1)%7 list2=["星期日",'星期一','星期二','星期三','星期四','星期五','星期六'] week=list2[result] # 定义一个函数,绘制最终的代码管 def draw_date(date): turtle.pencolor('red') for i in date: if i=='-': turtle.write('年',font=("Arial",36,'normal')) # 海归每一次画完图像之后,就停留在文字的左下角,要让海归向前移动 turtle.fd(50) elif i == '=': turtle.write('月', font=("Arial", 36, "normal")) turtle.pencolor("blue") turtle.fd(50) elif i == '+': turtle.write('日', font=("Arial", 36, "normal")) turtle.pencolor("yellow") turtle.fd(50) elif i == '*': turtle.write('时', font=("Arial", 36, "normal")) turtle.pencolor("purple") turtle.fd(50) elif i == '/': turtle.write('分', font=("Arial", 36, "normal")) turtle.pencolor("gold") turtle.fd(50) elif i == '$': turtle.write('秒', font=("Arial", 36, "normal")) else: draw_digit(eval(i)) turtle.color("green") turtle.penup() turtle.forward(50) turtle.pendown() turtle.write(week,font=("Arial", 36, "normal")) # 定义一个最终的主函数 def main(): # 设置一下画笔的速度 turtle.speed(200) # 设置画布的大小 turtle.setup(1500,1500,200,200) # 设置画笔的大小 turtle.pensize(5) # 画笔最开始的位置在坐标原点,这里调整一下画笔的起始位置 turtle.penup() turtle.goto(-650,0) # turtle.forward(-650) # 开始绘制代码管 draw_date(datetime.datetime.now().strftime("%Y-%m=%d+%H*%M/%S$")) # 绘制完图像之后隐藏海归 turtle.hideturtle() # 绘制完图像之后不选择关闭图像 turtle.done() main()
标签:turtle,draw,代码,else,line,month,day From: https://www.cnblogs.com/shangyishui/p/17895802.html