一:樱花树

运行效果:

完整代码如下:

import turtle

import random

from 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) # 6

t.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 tk

class 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 = 1

c = 0

for 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 += 1

if c > 3:

c = 0

r += 1

self.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 turtle

import 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 = 30

turtle.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()

文章来源

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。