一:樱花树

运行效果:

完整代码如下:

import turtleimport randomfrom turtle import *from time import sleep# 画樱花的躯干(60,t)def tree(branchLen,t):sleep(0.0005)if branchLen >3:if 8<= branchLen <=12:if random.randint(0,2) == 0:t.color('snow') # 白else:t.color('lightcoral') # 淡珊瑚色t.pensize(branchLen / 3)elif branchLen <8:if random.randint(0,1) == 0:t.color('snow')else:t.color('lightcoral') # 淡珊瑚色t.pensize(branchLen / 2)else:t.color('sienna') # 赭(zhě)色t.pensize(branchLen / 10) # 6t.forward(branchLen)a = 1.5 * random.random()t.right(20*a)b = 1.5 * random.random()tree(branchLen-10*b, t)t.left(40*a)tree(branchLen-10*b, t)t.right(20*a)t.up()t.backward(branchLen)t.down() # 掉落的花瓣def petal(m, t):for i in range(m):a = 200 - 400 * random.random()b = 10 - 20 * random.random()t.up()t.forward(b)t.left(90)t.forward(a)t.down()t.color('lightcoral') # 淡珊瑚色t.circle(1)t.up()t.backward(a)t.right(90)t.backward(b) def main():# 绘图区域t = turtle.Turtle()# 画布大小w = turtle.Screen()t.hideturtle() # 隐藏画笔getscreen().tracer(1,0)w.screensize(bg='wheat')t.left(90)t.up()t.backward(150)t.down()t.color('sienna') # 画樱花的躯干tree(60,t)# 掉落的花瓣petal(200, t)w.exitonclick() main()

二:呆萌小鸭子

运行效果:

完整代码如下:

from turtle import * #扁嘴pensize(2) pu()goto(-100,100)#上嘴最高顶点seth(-50)pd()color('#6C3100','#FADD77')begin_fill()fd(16)vertex_right = pos()#嘴最右顶点rt(50)fd(12)vertex_down = pos()#下嘴最低顶点rt(80)fd(30)circle(-3,200)vertex_left = pos()#嘴最左顶点goto(-100,100)end_fill()goto(vertex_left)#回到最左顶点circle(-3,-200)#扁嘴goto(vertex_right)#身体#头颈背尾曲线color('#B6A88E')pu()goto(-100,100)pd() seth(80)circle(-36,160)fd(25)circle(115,20)circle(60,55)circle(-200,20)circle(110,20)color('#7D6A4C')circle(40,40)color('#B6A88E')seth(-100)circle(-180,30)circle(-20,50) #右鸭腿circle(20,70)color('#736856')circle(-12,120)leg_pos1 = pos()#定位左腿位置fd(25) #前胸肚曲线pu()goto(vertex_down)pd()seth(-10)color('#B9AD9D')circle(-40,50)circle(-80,48)color('#736856')circle(250,5)circle(50,75)color('#B9AD9D')circle(220,28) #左鸭腿pu()seth(175)fd(40)pd()seth(-120)fd(8)circle(-10,120)leg_pos2 = pos()#定位右腿位置fd(15) #眼睛color('black')#左眼pu()goto(vertex_down - (1,-29))pd()dot(4,'black')#右眼pu()goto(vertex_down + (23,20))pd()dot(4,'black') #翅膀color('#BCB2A6')pu()goto(vertex_down - (-75,130))seth(130)pd()circle(-25,130)circle(-100,30)fd(85)point = pos()rt(137)fd(52)circle(-100,58) pu()goto(point)lt(30)pd()fd(60) pu()goto(point)pd()lt(10)fd(70)#腿部#左腿def leg(pos0):#鸭腿绘制函数pensize(8)color('#ECC578')pu()goto(pos0)seth(0)fd(7)seth(-90)fd(8.5)pd()fd(20)#腿长 leg(leg_pos1)leg(leg_pos2) #小红靴——函数def boot(pos0):pensize(2)color('#B4070B','#FBA06B')pu()goto(pos0)#靴子右上顶点pd()begin_fill()seth(140)circle(25,80)seth(-80)fd(35) circle(-2,60)#靴低fd(20)circle(4,180)seth(5)fd(30)circle(2,60)goto(pos0)#右侧线条end_fill()boot(leg_pos1-(-20,30))boot(leg_pos2-(-20,30))#小雨滴color('#77DDFF','#D8E8E5')fd_ls = [200,140,250,240,230,220,180,250]lt_ls = [30,60,60,100,125,170,200,330]for i in range(8):pu()home()lt(lt_ls[i])fd(fd_ls[i]) pd()seth(-78)fd(15)begin_fill()circle(-3,200)end_fill()fd(15) #文字pu()goto(vertex_left)seth(180)fd(150)seth(-90)fd(300)color('black')write('呆萌小鸭子',font=("Arial",15,"normal"))hideturtle()done()

三:计算器

运行效果:

完整代码如下:

import tkinter as tkclass Calc(tk.Tk):"""计算器窗体类"""def __init__(self):"""初始化实例"""tk.Tk.__init__(self)self.title("计算器")self.memory = 0# 暂存数值self.create()def create(self):"""创建界面"""btn_list = ["C", "M->", "->M", "/","7", "8", "9", "*","4", "5", "6", "-","1", "2", "3", "+","+/-", "0", ".", "="]r = 1c = 0for b in btn_list:self.button = tk.Button(self, text=b, width=5,command=(lambda x=b: self.click(x)))self.button.grid(row=r, column=c, padx=3, pady=6)c += 1if c > 3:c = 0r += 1self.entry = tk.Entry(self, width=24, borderwidth=2,bg="yellow", font=("Consolas", 12))self.entry.grid(row=0, column=0, columnspan=4, padx=8, pady=6)def click(self, key):"""响应按钮"""if key == "=":# 输出结果result = eval(self.entry.get())self.entry.insert(tk.END, " = " + str(result))elif key == "C":# 清空输入框self.entry.delete(0, tk.END)elif key == "->M":# 存入数值self.memory = self.entry.get()if "=" in self.memory:ix = self.memory.find("=")self.memory = self.memory[ix + 2:]self.title("M=" + self.memory)elif key == "M->":# 取出数值if self.memory:self.entry.insert(tk.END, self.memory)elif key == "+/-":# 正负翻转if "=" in self.entry.get():self.entry.delete(0, tk.END)elif self.entry.get()[0] == "-":self.entry.delete(0)else:self.entry.insert(0, "-")else:# 其他键if "=" in self.entry.get():self.entry.delete(0, tk.END)self.entry.insert(tk.END, key)if __name__ == "__main__":Calc().mainloop()

四:皮卡丘

运行效果:

完整代码如下:

from turtle import *'''绘制皮卡丘头部'''def face(x,y):"""画脸"""begin_fill()penup()# 将海龟移动到指定的坐标goto(x, y)pendown()# 设置海龟的方向setheading(40)circle(-150, 69)fillcolor("#FBD624")# 将海龟移动到指定的坐标penup()goto(53.14, 113.29)pendown()setheading(300)circle(-150, 30)setheading(295)circle(-140, 20)print(position())forward(5)setheading(260)circle(-80, 70)print(position())penup()goto(-74.43,-79.09)pendown()penup()# 将海龟移动到指定的坐标goto(-144,103)pendown()setheading(242)circle(110, 35)right(10)forward(10)setheading(250)circle(80, 115)print(position())penup()goto(-74.43,-79.09)pendown()setheading(10)penup()goto(-144, 103)pendown()penup()goto(x, y)pendown()end_fill()# 下巴penup()goto(-50, -82.09)pendown()pencolor("#DDA120")fillcolor("#DDA120")begin_fill()setheading(-12)circle(120, 25)setheading(-145)forward(30)setheading(180)circle(-20, 20)setheading(143)forward(30)end_fill()def eye():"""画眼睛"""# 左眼color("black","black")penup()goto(-110, 27)pendown()begin_fill()setheading(0)circle(24)end_fill()# 左眼仁color("white", "white")penup()goto(-105, 51)pendown()begin_fill()setheading(0)circle(10)end_fill()# 右眼color("black", "black")penup()goto(25, 40)pendown()begin_fill()setheading(0)circle(24)end_fill()# 右眼仁color("white", "white")penup()goto(17, 62)pendown()begin_fill()setheading(0)circle(10)end_fill()def cheek():"""画脸颊"""# 右边color("#9E4406", "#FE2C21")penup()goto(-130, -50)pendown()begin_fill()setheading(0)circle(27)end_fill()# 左边color("#9E4406", "#FE2C21")penup()goto(53, -20)pendown()begin_fill()setheading(0)circle(27)end_fill()def nose():"""画鼻子"""color("black", "black")penup()goto(-40, 38)pendown()begin_fill()circle(7,steps = 3)end_fill()def mouth():"""画嘴"""color("black", "#F35590")# 嘴唇penup()goto(-10, 22)pendown()begin_fill()setheading(260)forward(60)circle(-11, 150)forward(55)print(position())penup()goto(-38.46, 21.97)pendown()end_fill()# 舌头color("#6A070D", "#6A070D")begin_fill()penup()goto(-10.00, 22.00)pendown()penup()goto(-14.29, -1.7)pendown()penup()goto(-52, -5)pendown()penup()goto(-60.40, 12.74)pendown()penup()goto(-38.46, 21.97)pendown()penup()goto(-10.00, 22.00)pendown()end_fill()color("black","#FFD624")penup()goto(-78, 15)pendown()begin_fill()setheading(-25)for i in range(2):setheading(-25)circle(35, 70)end_fill()color("#AB1945", "#AB1945")penup()goto(-52, -5)pendown()begin_fill()setheading(40)circle(-33, 70)goto(-16,-1.7)penup()goto(-18,-17)pendown()setheading(155)circle(25, 70)end_fill()def ear():"""画耳朵"""# 左耳color("black","#FFD624")penup()goto(-145, 93)pendown()begin_fill()setheading(165)circle(-248,50)right(120)circle(-248,50)end_fill()color("black", "black")penup()goto(-240, 143)pendown()begin_fill()setheading(107)circle(-170, 25)left(80)circle(229, 15)left(120)circle(300, 15)end_fill()# 右耳color("black", "#FFD624")penup()goto(30, 136)pendown()begin_fill()setheading(64)circle(-248, 50)right(120)circle(-248, 50)end_fill()color("black", "black")penup()goto(160, 200)pendown()begin_fill()setheading(52)circle(170, 25)left(116)circle(229, 15)left(71)circle(-300, 15)end_fill()def setting():"""设置参数"""pensize(2)# 隐藏海龟hideturtle()speed(10)def main():"""主函数"""setting()face(-132,115)eye()cheek()nose()mouth()ear()done()if __name__ == '__main__':main()

五:表白专用

运行效果:

完整代码如下:

import turtleimport time# 清屏函数def clear_all():turtle.penup()turtle.goto(0, 0)turtle.color('white')turtle.pensize(800)turtle.pendown()turtle.setheading(0)turtle.fd(300)turtle.bk(600) # 重定位海龟的位置def go_to(x, y, state):turtle.pendown() if state else turtle.penup()turtle.goto(x, y)# 画线# state为真时海龟回到原点,为假时不回到原来的出发点def draw_line(length, angle, state):turtle.pensize(1)turtle.pendown()turtle.setheading(angle)turtle.fd(length)turtle.bk(length) if state else turtle.penup()turtle.penup()# 画箭羽def draw_feather(size):angle = 30# 箭的倾角feather_num = size//6 # 羽毛的数量feather_length = size // 3# 羽毛的长度feather_gap = size//10# 羽毛的间隔for i in range(feather_num):draw_line(feather_gap, angle+180, False)# 箭柄,不折返draw_line(feather_length, angle + 145, True)# 羽翼,要折返draw_line(feather_length, angle + 145, False)draw_line(feather_num*feather_gap, angle, False)draw_line(feather_length, angle + 145 + 180, False)for i in range(feather_num):draw_line(feather_gap, angle+180, False)# 箭柄,不折返draw_line(feather_length, angle - 145, True)# 羽翼,要折返draw_line(feather_length, angle - 145, False)draw_line(feather_num*feather_gap, angle, False)draw_line(feather_length, angle - 145 + 180, False) # 画爱心def draw_heart(size):turtle.color('red', 'pink')turtle.pensize(2)turtle.pendown()turtle.setheading(150)turtle.begin_fill()turtle.fd(size)turtle.circle(size * -3.745, 45)turtle.circle(size * -1.431, 165)turtle.left(120)turtle.circle(size * -1.431, 165)turtle.circle(size * -3.745, 45)turtle.fd(size)turtle.end_fill()# 画箭def draw_arrow(size):angle = 30turtle.color('black')draw_feather(size)turtle.pensize(4)turtle.setheading(angle)turtle.pendown()turtle.fd(size*2) # 一箭穿心# 箭的头没有画出来,而是用海龟来代替def arrow_heart(x, y, size):go_to(x, y, False)draw_heart(size*1.15)turtle.setheading(-150)turtle.penup()turtle.fd(size*2.2)draw_heart(size)turtle.penup()turtle.setheading(150)turtle.fd(size * 2.2)draw_arrow(size)# 画出发射爱心的小人def draw_people(x, y):turtle.penup()turtle.goto(x, y)turtle.pendown()turtle.pensize(2)turtle.color('black')turtle.setheading(0)turtle.circle(60, 360)turtle.penup()turtle.setheading(90)turtle.fd(75)turtle.setheading(180)turtle.fd(20)turtle.pensize(4)turtle.pendown()turtle.circle(2, 360)turtle.setheading(0)turtle.penup()turtle.fd(40)turtle.pensize(4)turtle.pendown()turtle.circle(-2, 360)turtle.penup()turtle.goto(x, y)turtle.setheading(-90)turtle.pendown()turtle.fd(20)turtle.setheading(0)turtle.fd(35)turtle.setheading(60)turtle.fd(10)turtle.penup()turtle.goto(x, y)turtle.setheading(-90)turtle.pendown()turtle.fd(40)turtle.setheading(0)turtle.fd(35)turtle.setheading(-60)turtle.fd(10)turtle.penup()turtle.goto(x, y)turtle.setheading(-90)turtle.pendown()turtle.fd(60)turtle.setheading(-135)turtle.fd(60)turtle.bk(60)turtle.setheading(-45)turtle.fd(30)turtle.setheading(-135)turtle.fd(35)turtle.penup()# 第一个画面,显示文字def page0():turtle.penup()turtle.goto(-350, 0)turtle.color('black')turtle.write('专属于我们的什么节', font=('宋体', 60, 'normal')) #这里的字大家自己替换time.sleep(3) # 第二个画面,显示发射爱心的小人def page1():turtle.speed(10)draw_people(-250, 20)turtle.penup()turtle.goto(-150, -30)draw_heart(14)turtle.penup()turtle.goto(-20, -60)draw_heart(25)turtle.penup()turtle.goto(250, -100)draw_heart(45)turtle.hideturtle()time.sleep(3) # 最后一个画面,一箭穿心def page2():turtle.speed(1)turtle.penup()turtle.goto(-200, -200)turtle.color('blue')turtle.pendown()turtle.write('温轻舟 温轻舟', font=('wisdom', 25, 'normal')) #这里的字大家自己替换turtle.penup()turtle.goto(0, -180)draw_heart(10)arrow_heart(20, -60, 51)turtle.showturtle() def main():turtle.setup(900, 500)page0()clear_all()page1()clear_all()page2()turtle.done()main()