turtle库基本命令
1、turtle.setup()函数:用于启动一个图形窗口,它有四个参数turtle.setup(width, height, startx, starty)分别是:启动窗口的宽度和高度表示窗口启动时,窗口左上角在屏幕中的坐标位置。
2、turtle.pensize()函数:表示小乌龟运动轨迹的宽度。
3、turtle.pencolor()函数:表示小乌龟运动轨迹的颜色。它包含一个输入参数,这里我们把它设为蓝色,blue,其他颜色单词也可以使用。Turtle采用RGB方式来定义颜色,如果希望获得和图片中颜色一致的小蛇,请输入turtle.pencolor(“#3B9909”)
4、turtle.seth(angle)函数:表示小乌龟启动时运动的方向。它包含一个输入参数,是角度值。0表示向东,90度向北,180度向西,270度向南;负值表示相反方向。程序中,我们让小乌龟向-40度启动爬行,即:向东南方向40度。
5、turtle.circle()函数:让小乌龟沿着一个圆形爬行,参数rad描述圆形轨迹半径的位置,这个半径在小乌龟运行的左侧,rad远位置处。如果 rad为负值,则半径在小乌龟运行的右侧, 参数angle表示小乌龟沿着圆形爬行的弧度值。
6、turtle.fd()函数:表示乌龟向前直线爬行移动表示小乌龟向前直线爬行移动,它有一个参数表示爬行的距离
datetime模块函数
1.datetime.date:表示日期的类,返回year-month-day
2.datetime.datetime:表示日期时间的类,返回年月日,时分秒
3.datetime.time:表示时间的类,
4.datetime.timedelta:表示时间间隔,即两个时间点的间隔
5.datetime.tzinfo:时区的相关信息
程序代码
1from turtle import *
2from datetime import *
3
4def Skip(step):
5 penup()
6 forward(step)
7 pendown()
8
9def mkHand(name, length):
10 #注册Turtle形状,建立表针Turtle
11 reset() #清空当前窗口,并重置位置等信息为默认值
12 Skip(-length*0.1)
13 begin_poly()
14 forward(length*1.1)
15 end_poly()
16 handForm = get_poly()
17 register_shape(name, handForm)
18
19def Init():
20 global secHand, minHand, hurHand, printer
21 mode("logo")# 重置Turtle指向北
22 #建立三个表针Turtle并初始化
23 mkHand("secHand", 135)
24 mkHand("minHand", 110)
25 mkHand("hurHand", 90)
26 secHand = Turtle()
27 secHand.shape("secHand")
28 minHand = Turtle()
29 minHand.shape("minHand")
30 hurHand = Turtle()
31 hurHand.shape("hurHand")
32 for hand in secHand, minHand, hurHand:
33 hand.shapesize(1, 1, 3)
34 hand.speed(0)
35 #建立输出文字Turtle
36 printer = Turtle()
37 printer.hideturtle()
38 printer.penup()
39
40def SetupClock(radius):
41 #建立表的外框
42 reset()
43 pensize(7)
44 for i in range(60):
45 Skip(radius)
46 if i % 5 == 0:
47 forward(20)
48 Skip(-radius-20)
49 else:
50 dot(5)
51 Skip(-radius)
52 right(6)
53
54def Week(t):
55 week = ["星期一", "星期二", "星期三",
56 "星期四", "星期五", "星期六", "星期日"]
57 return week[t.weekday()]
58
59def Date(t):
60 y = t.year
61 m = t.month
62 d = t.day
63 return "%s %d %d" % (y, m, d)
64
65def Tick():
66 #绘制表针的动态显示
67 t = datetime.today()
68 second = t.second + t.microsecond*0.000001
69 minute = t.minute + second/60.0
70 hour = t.hour + minute/60.0
71 secHand.setheading(6*second) #设置朝向,每秒转动6度
72 minHand.setheading(6*minute)
73 hurHand.setheading(30*hour)
74
75 tracer(False) #不显示绘制的过程,直接显示绘制结果
76 printer.forward(50)
77 printer.write(Week(t), align="center",
78 font=("Courier", 12, "bold"))
79 printer.forward(20)
80 printer.write(Date(t), align="center",
81 font=("Courier", 14, "bold"))
82 printer.forward(120)
83 printer.write("python练手项目实战", align="center",
84 font=("Courier", 14, "bold"))
85 printer.home()
86 tracer(True)
87
88 ontimer(Tick, 1000)#1000ms后继续调用tick
89
90def main():
91 tracer(False) #使多个绘制对象同时显示
92 Init()
93 SetupClock(160)
94 tracer(True)
95 Tick()
96 mainloop()
97
98if __name__ == "__main__":
99 main()
效果图