1.七段数码管绘制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #coding=gbk from turtle import * import datetime def drawgap(): pu() fd(5) def drawLine(draw): drawgap() pd() if draw else pu() fd(40) drawgap() 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 [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) left(90) 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) left(180) fd(20) def drawDate(date): pencolor("red") for i in date: if i=='-': write('年',font=("Arial",18,"normal")) pencolor("green") fd(40) elif i=='=': 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(-350) pensize(5) drawDate(datetime.datetime.now().strftime('%Y-%m=%d+')) hideturtle() done() main() |
2.科赫曲线绘制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #coding=gbk from turtle import * def koch(size,n): if n==0: fd(size) else: for angle in [0,60,-120,60]: left(angle) koch(size/3,n-1) def main(): setup(600,600) speed(0) pu() goto(-200,100) pd() pensize(2) level=5 koch(400,level) right(120) koch(400,level) righr(120) koch(400,level) hideturtle() done() main() |
3.汉诺塔
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #coding=gbk from time import time def move (n, a, b, c): if (n == 1): print(a, "->", c) return move(n-1,a, c, b) move(1, a, b, c) move(n-1, b, a, c) num = eval(input('请输入A柱盘子的个数')) print('把',num,'个盘子全部移到C柱子上的顺序为:') t1 = time() move(num, "a", "b", "c") t2 = time() time = t2-t1 print("耗时为:{}秒".format(time)) |