觉醒之路

前言

该文章适合于少儿编程python turtle 课程 备课 或者 大学生接触一段时间python后使用turtle完成一些练习的效果

四色的圆

点击查看代码

import turtle

turtle.color("red") #设置画笔颜色为红色

turtle.circle(100,90) #四分之一圆

turtle.color("blue") #变更画笔颜色为蓝色

turtle.circle(100,90)

turtle.color("yellow") #变更画笔颜色为黄色

turtle.circle(100,90)

turtle.color("green") #变更画笔颜色为绿色

turtle.circle(100,90)

turtle.done()

螺旋线

点击查看代码

import turtle

turtle.circle(30,180) #绘制半径为30的半圆

turtle.circle(60,180)

turtle.circle(90, 180)

turtle.circle(120, 180)

turtle.done()

铜钱古币

点击查看代码

import turtle

turtle.color("black","orange")

turtle.begin_fill()

turtle.circle(100)

turtle.end_fill()

turtle.penup()

turtle.goto(0,50)

turtle.pendown()

turtle.color("black","white")

turtle.begin_fill()

turtle.goto(50,50)

turtle.goto(50,150)

turtle.goto(-50,150)

turtle.goto(-50,50)

turtle.goto(0,50)

turtle.end_fill()

turtle.hideturtle()

turtle.done()

春联

点击查看代码

import turtle

t = turtle

t.showturtle()

t.penup()

t.goto(-150,150)

t.pendown()

t.color('black', 'red')

t.begin_fill()

for i in range(2):

t.forward(50)

t.right(90)

t.forward(400)

t.right(90)

t.end_fill()

t.penup()

t.goto(100, 150)

t.pendown()

t.begin_fill()

for i in range(2):

t.forward(50)

t.right(90)

t.forward(400)

t.right(90)

t.end_fill()

t.penup()

t.goto(-100, 250)

t.pendown()

t.color('black', 'red')

t.begin_fill()

for i in range(2):

t.forward(200)

t.right(90)

t.forward(50)

t.right(90)

t.end_fill()

t.penup()

t.goto(-150, -250)

t.pendown()

#上联:春临大地百花艳

#下联:节至人间万象新

#横批:万事如意

t.write("春\n临\n大\n地\n百\n花\n艳", align = "left", font = ("华文行楷",40))

t.penup()

t.goto(100, -250)

t.pendown()

t.write("节\n至\n人\n间\n万\n象\n新", align="left", font=("华文行楷", 40))

t.penup()

t.goto(-100, 200)

t.pendown()

t.write("万事如意", align="left", font=("华文行楷", 36))

t.hideturtle()

t.done()

春联

点击查看代码

import turtle #导入海龟库

t = turtle #变量赋值

t.penup() #抬笔

t.goto(100, 150) #移动到对应位置(100,150)

t.pendown() #落笔

t.fillcolor("red") #填充颜色设置为红色

t.begin_fill() #开始填充

for i in range(2): #重复执行2次

t.forward(50) #前进50步

t.right(90) #右转90度

t.forward(400) #前进400步

t.right(90) #右转90度

t.end_fill() #结束填充

t.penup() #抬笔

t.goto(100, -250) #移动到对应位置(100,-250)

t.pendown() #落笔

t.pencolor("black") #设置画笔颜色为黑色

t.write("一\n年\n四\n季\n春\n常\n在", align="left", font=("华文行楷", 40, "normal"))

# 书写文字"一\n年\n四\n季\n春\n常\n在" 左对齐 字体为("华文行楷", 40, "normal")

t.penup()

t.goto(-150, 150)

t.pendown()

t.fillcolor("red")

t.begin_fill()

for i in range(2):

t.forward(50)

t.right(90)

t.forward(400)

t.right(90)

t.end_fill()

t.penup()

t.goto(-150, -250)

t.pendown()

t.pencolor("black")

t.write("万\n紫\n千\n红\n花\n永\n开", align="left", font=("华文行楷", 40, "normal"))

t.penup()

t.goto(-100, 240)

t.pendown()

t.fillcolor("red")

t.begin_fill()

for i in range(2):

t.forward(200)

t.right(90)

t.forward(50)

t.right(90)

t.end_fill()

t.penup()

t.goto(0, 190)

t.pendown()

t.write("春新迎喜", align="center", font=("华文行楷", 36, "normal"))

t.done()

新年贺卡

点击查看代码

import turtle

t = turtle

t.color('gold')

t.penup()

t.goto(80,0)

t.pendown()

t.write("万\n事\n大\n吉",font=("华文行楷",45,"normal"))

t.penup()

t.goto(0,0)

t.pendown()

t.write("新\n年\n快\n乐",font=("华文行楷",45,"normal"))

t.color("black")

t.penup()

t.goto(-120,110)

t.pendown()

t.write("新\n年\n贺\n卡", font=("华文行楷", 20, "normal"))

t.penup()

t.goto(-130,0)

t.pendown()

t.color("red")

t.begin_fill()

for i in range(4):

t.forward(55)

t.left(90)

t.end_fill()

t.pensize(2)

t.color('white')

t.write('自制\n印章', font=("华文行楷", 20, "normal"))

t.done()

简易版红旗绘制

点击查看代码

import turtle

def move(x,y):

t.penup()

t.goto(x,y)

t.pendown()

def star(x):

t.color('yellow')

t.begin_fill()

for i in range(5):

t.forward(x)

t.right(144)

t.end_fill()

t = turtle

t.setup(600, 400,0,0)

t.bgcolor('red')

move(-260,120)

star(120)

move(-120,160)

star(40)

move(-80,120)

star(40)

move(-80,60)

star(40)

move(-120,20)

star(40)

t.done()

简易版奥运五环

点击查看代码

import turtle

t = turtle

def drawCircle(x,y,r,pensize,color):

t.penup() #抬笔

t.goto(x,y) #移动位置

t.pendown() #落笔

t.pensize(pensize) #设置画笔粗细

t.color(color) #设置画笔颜色

t.circle(-r) #顺时针画圆

drawCircle(-240,200,100,20,'blue')

drawCircle( 0,200,100,20,'black')

drawCircle( 240,200,100,20,'red')

drawCircle(-120,100,100,20,'orange')

drawCircle( 120,100,100,20,'green')

t.done()

补充版奥运五环

点击查看代码

import turtle

t = turtle

def drawCircle(x,y,r,pensize,color):

t.penup() #抬笔

t.goto(x,y) #移动位置

t.pendown() #落笔

t.pensize(pensize+6) # 设置画笔粗细

t.pencolor("white") # 设置画笔颜色

t.circle(-r) # 顺时针画圆

t.pensize(pensize) # 设置画笔粗细

t.color(color) #设置画笔颜色

t.circle(-r) #顺时针画圆

def drawnest(x, y, r, pensize, color, extent,offset):

t.setheading(0)

t.penup() # 抬笔

t.goto(x, y) # 移动位置

t.circle(-r, 5) # 顺时针画圆

t.circle(-r, offset)

t.pendown() # 落笔

t.pensize(pensize+12) # 设置画笔粗细

t.pencolor("white") # 设置画笔颜色

t.circle(-r, extent-10) # 顺时针画圆

t.setheading(0)

t.penup() # 抬笔

t.goto(x, y) # 移动位置

t.circle(-r, offset)

t.pendown() # 落笔

t.pensize(pensize) # 设置画笔粗细

t.color(color) # 设置画笔颜色

t.circle(-r,extent) # 顺时针画圆

drawCircle(-240,200,100,20,'blue')

drawCircle( 0,200,100,20,'black')

drawCircle( 240,200,100,20,'red')

drawCircle(-120,100,100,20,'orange')

drawCircle( 120,100,100,20,'green')

drawnest(-240, 200, 100, 20, 'blue',60,60)

drawnest(0, 200, 100, 20, 'black', 60,60)

drawnest(0, 200, 100, 20, 'black', 60, 180)

drawnest(240, 200, 100, 20, 'red', 60, 180)

t.done()

多边形

点击查看代码

import turtle

t = turtle

a = int(t.textinput("输入", "输入多边形的个数:"))

b = int(t.textinput("输入", "输入多边形的边数:"))

c = int(t.textinput("输入", "输入多边形的边长:"))

t.color('red')

for i in range(a):

for j in range(b):

t.forward(c)

t.right(360/b)

t.right(360/a)

t.done()

多边形

点击查看代码

import turtle

t = turtle

a = 6

b = 6

c = 6

d = 100

for i in range(a):

for j in range(b):

for k in range(c):

t.forward(20)

t.right(360/c)

t.forward(100)

t.right(360/b)

t.right(360/a)

t.done()

箭靶

点击查看代码

import turtle

t = turtle

r = 200

t.showturtle()

colors = ['white','white','black','black','blue','blue','red','red','yellow','yellow']

for i in range(10):

t.penup()

t.goto(0,r)

t.pendown()

t.fillcolor(colors[i])

t.begin_fill()

t.circle(-r)

t.end_fill()

r-=20

t.penup()

t.goto(0,0)

t.pendown()

for i in range(4):

t.forward(10)

t.backward(10)

t.right(90)

t.hideturtle()

t.done()

第二种实现方式

点击查看代码

import turtle

t = turtle

r = 400

t.showturtle()

colors = ['white', 'white', 'black', 'black',

'blue', 'blue', 'red', 'red', 'yellow', 'yellow']

for i in range(10):

t.penup()

t.goto(0, 0)

t.pendown()

t.goto(0, 0)

t.pencolor(colors[i])

t.pensize(r)

r -= 40

t.pensize(1)

t.pencolor('black')

t.penup()

t.goto(0, 0)

t.pendown()

for i in range(4):

t.forward(10)

t.backward(10)

t.right(90)

t.hideturtle()

t.done()

点击查看代码

import turtle

t = turtle

colors = ['white', 'white', 'black', 'black',

'blue', 'blue', 'red', 'red', 'yellow', 'yellow']

r = 400

t.showturtle()

t.home()

for i in range(10):

t.dot(r,colors[i])

r = r - 40

t.pensize(1)

t.pencolor('black')

for i in range(4):

t.forward(10)

t.backward(10)

t.right(90)

t.hideturtle()

t.done()

花蟒蛇

点击查看代码

import turtle

t = turtle

t.setheading(-40)

n = 6

t.penup()

t.goto(-200,0)

t.pendown()

t.pensize(30)

for i in range(n):

t.color('red')

t.circle(30,80)

t.color('blue')

t.circle(-30,80)

t.done()

花蟒蛇2

点击查看代码

import turtle

t = turtle

t.setheading(-40)

t.bgcolor('turquoise')

n = int(t.textinput("请输入蟒蛇的长度","范围在3-10之间"))

t.penup()

t.goto(-200,0)

t.pendown()

t.pensize(30)

for i in range(n//2):

t.color('red')

t.circle(30,80)

t.color('blue')

t.circle(-30,80)

t.done()

三叶风车

点击查看代码

import turtle

t = turtle

colors = ['red','violet','cyan']

t.pensize(10)

for i in range(3):

t.color(colors[i])

t.begin_fill()

for j in range(3):

t.forward(100)

t.right(120)

t.right(120)

t.end_fill()

t.pensize(20)

t.setheading(-90)

t.color('grey')

t.forward(200)

t.done()

多叶风车

点击查看代码

import turtle

t = turtle

colors = ['red', 'violet','cyan','orange','lightgreen','pink']

t.showturtle()

for i in range(6):

t.fillcolor(colors[i])

t.begin_fill()

t.forward(100)

t.right(60)

t.forward(100)

t.right(60)

t.forward(100)

t.right(120)

t.forward(200)

t.end_fill()

t.right(60)

t.hideturtle()

t.done()

点击查看代码

import turtle

t = turtle

colors = ['red', 'violet', 'cyan', 'orange', 'lightgreen']

t.showturtle()

t.home()

t.setheading(-90)

t.color('grey')

t.pensize(30)

t.forward(300)

t.home()

t.color('grey')

t.pensize(3)

for i in range(5):

t.fillcolor(colors[i])

t.begin_fill()

t.forward(150)

t.right(90)

t.forward(200)

t.goto(0,0)

t.end_fill()

t.left(18)

t.dot(50,'yellow')

t.hideturtle()

t.done()

半圆风车

点击查看代码

import turtle

t = turtle

colors = ['red', 'violet', 'cyan', 'orange', 'yellow']

t.bgcolor('palegreen')

t.pensize(20)

t.color('grey')

t.setheading(-90)

t.forward(300)

t.backward(300)

for i in range(5):

t.color(colors[i])

t.begin_fill()

t.circle(100,180)

t.home()

t.end_fill()

t.setheading(i*72)

t.done()

数字

点击查看代码

import turtle

import time

t = turtle

t.hideturtle()

t.penup()

t.goto(0,-200)

t.pendown()

for i in range(10,0,-1):

t.write(str(i),align="center",font = ("宋体",400,"normal"))

time.sleep(1)

t.clear()

t.done()

棋盘

点击查看代码

import turtle as t #导入turtle库

t.setup(500,500) #窗口大小 500*500

t.penup() #抬笔

t.goto(-200,200) #移动到 -200,200

t.pendown() #落笔

t.speed(0) #画笔速度为 0

t.color('black') #设置颜色为黑色

for i in range(8): #重复执行8次

for j in range(8): #重复执行8次

if((i+j)%2==0): #如果 i+j 是偶数

t.begin_fill() #开始填充

for k in range(4): #正方形

t.forward(50)

t.right(90)

t.end_fill() #结束填充

t.forward(50)

t.setx(-200) #下一行的坐标

t.sety(200-(i+1)*50)

t.forward(400)

t.left(90)

t.forward(400)

t.hideturtle()

t.done()

点击查看代码

import turtle

from math import *

t = turtle

t.speed(0)

t.setup(500, 500)

# 开始坐标 -200,200

t.penup()

t.goto(-200, 200)

t.pendown()

# 设置画笔颜色 'pink','red','cyan','green'

t.color('blue')

# 设置海龟形状 'turtle'

t.shape('turtle')

for i in range(8):

for j in range(8):

if((i+j) % 2 == 0):

t.begin_fill()

for k in range(4):

t.forward(50)

t.right(90)

t.end_fill()

else:

for k in range(4):

t.forward(50)

t.right(90)

t.forward(50)

t.setx(-200)

t.sety(200-50*(i+1))

t.hideturtle()

t.done()

蒲公英 1 2 3

蒲公英1

点击查看代码

#绘制蒲公英

import turtle as t

t.speed(0)

t.bgcolor('#1e67c5')

t.pencolor('#e0f4f5')

#变量初始化设置

a = 100

b = 80

c = 60

for i in range(15):

t.forward(a)

t.dot(a/10)

t.backward(a)

t.left(8)

t.forward(b)

t.dot(b/10)

t.backward(b)

t.left(8)

t.forward(c)

t.dot(c/10)

t.backward(c)

t.left(8)

t.pensize(3)

t.right(80)

t.circle(-600,40)

t.hideturtle()

t.done()

蒲公英2

点击查看代码

#绘制蒲公英

import turtle as t

t.speed(0)

t.bgcolor('#1e67c5')

t.pencolor('#e0f4f5')

#变量初始化设置

a = 100

b = 80

c = 60

for i in range(15):

t.forward(a)

for j in range(12):

t.forward(a/20)

t.back(a/20)

t.right(30)

t.backward(a)

t.left(8)

t.forward(b)

for j in range(12):

t.forward(b/20)

t.back(b/20)

t.right(30)

t.backward(b)

t.left(8)

t.forward(c)

for j in range(12):

t.forward(c/20)

t.back(c/20)

t.right(30)

t.backward(c)

t.left(8)

t.pensize(3)

t.right(80)

t.circle(-600,40)

t.hideturtle()

t.done()

蒲公英3

点击查看代码

#绘制蒲公英

import turtle as t

t.speed(0)

t.bgcolor('#1e67c5')

t.pencolor('#e0f4f5')

#变量初始化设置

a = 100

b = 80

c = 60

for i in range(15):

t.forward(a)

t.left(90)

for j in range(6):

t.forward(a/10)

t.back(a/10)

t.right(30)

t.left(90)

t.backward(a)

t.left(8)

t.forward(b)

t.left(90)

for j in range(6):

t.forward(b/10)

t.back(b/10)

t.right(30)

t.left(90)

t.backward(b)

t.left(8)

t.forward(c)

t.left(90)

for j in range(6):

t.forward(c/10)

t.back(c/10)

t.right(30)

t.left(90)

t.backward(c)

t.left(8)

t.pensize(3)

t.right(80)

t.circle(-600, 40)

t.hideturtle()

t.done()

樱花树

樱花树代码

# 樱花树

import turtle as t

import random

import time

#画樱花树的躯干

def Tree(branch,t):

time.sleep(0.0005)

if branch > 3:

if 8<=branch<=12:

if random.randint(0,2) == 0:

t.color('snow')

else:

t.color('lightcoral')

t.pensize(branch/3)

elif branch <8:

if random.randint(0,1) == 0:

t.color('snow')

else:

t.color('lightcoral')

t.pensize(branch/2)

else:

t.color('sienna')

t.pensize(branch/10)

t.forward(branch)

a = 1.5 * random.random()

t.right(20*a)

b = 1.5 * random.random()

Tree(branch - 10*b,t)

t.left(40*a)

Tree(branch - 10*b,t)

t.right(20*a)

t.penup()

t.backward(branch)

t.down()

def Petal(m,t):

for i in range(m):

a = 200 - 400 * random.random()

b = 10 - 20 * random.random()

t.penup()

t.forward(b)

t.left(90)

t.forward(a)

t.pendown()

t.color('lightcoral')

t.circle(1)

t.penup()

t.backward(a)

t.right(90)

t.backward(b)

# 绘图区域

t1 = t.Turtle()

t2 = t.Screen()

t1.hideturtle()

t1.getscreen().tracer(5,0)

t2.screensize(bg = 'wheat') # wheat 小麦色

t1.left(90)

t1.up()

t1.backward(150)

t1.down()

t1.color('sienna')

#画樱花树的躯干

Tree(60,t1)

#掉落的花瓣

Petal(300,t1)

t2.exitonclick()

t.done()

立方体

立方体代码

import turtle as t

# 立方体

a = 200

b = 100

t.pensize(5)

t.goto(0,a)

for i in range(4):

t.forward(a)

t.right(90)

for i in range(2):

t.forward(a)

t.left(45)

t.forward(b)

t.left(135)

t.forward(a)

t.left(45)

for i in range(2):

t.forward(b)

t.right(135)

t.forward(a)

t.right(45)

t.goto(0,a)

t.seth(0)

t.left(45)

t.forward(b)

t.right(135)

for i in range(5):

t.penup()

t.forward(a/10)

t.pendown()

t.forward(a/10)

p = t.pos()

t.right(45)

for i in range(2):

t.penup()

t.forward(b/4)

t.pendown()

t.forward(b/4)

t.penup()

t.goto(p)

t.pendown()

t.seth(0)

for i in range(5):

t.penup()

t.forward(a/10)

t.pendown()

t.forward(a/10)

t.done()

立方体的另一个代码

点击查看代码

import turtle as t

from math import *

a = 200

b = 100

theta = 45

A = (0,0)

t.pensize(5)

t.goto(A)

for i in range(4):

t.forward(a)

t.left(90)

t.forward(a)

t.left(theta)

t.forward(b)

t.left(theta)

t.forward(a)

t.left(180-theta)

t.forward(b)

t.back(b)

t.right(theta)

t.forward(a)

t.left(theta)

t.forward(b)

t.back(b)

t.left(theta)

for i in range(a//20):

t.forward(a//20)

t.penup()

t.forward(a//20)

t.pendown()

t.right(theta)

for i in range(b//20):

t.forward(b//10)

t.penup()

t.forward(b//10)

t.pendown()

t.penup()

t.back(b)

t.pendown()

t.left(180-theta)

for i in range(a//20):

t.forward(a//20)

t.penup()

t.forward(a//20)

t.pendown()

t.done()

蒙德风车

#导入海龟库

import turtle as t

def fan(heading, angle):

t.seth(heading)

t.right(angle)

t.fillcolor('white')

t.begin_fill()

t.forward(100)

t.left(90)

t.circle(100, angle*2)

t.left(90)

t.forward(100)

t.left(180-angle)

t.end_fill()

p = t.pos()

size = t.pensize()

t.pensize(1)

t.penup()

t.forward(50)

t.pendown()

s = 0.1

for i in range(10):

t.pensize(s)

s=s + 0.3

t.forward(40/10)

t.penup()

t.goto(p)

t.pendown()

t.pensize(size)

def underfan(starth,takeup):

p = t.pos()

t.fillcolor('lightgreen')

t.begin_fill()

t.seth(starth)

t.forward(30)

t.left(takeup*2)

t.forward(30)

t.left(180-takeup)

t.goto(p)

t.end_fill()

t.speed(0)

t.pensize(3)

t.pencolor('lightgreen')

t.penup()

t.goto(0,-120)

t.pendown()

t.circle(120,360,4)

t.penup()

t.home()

t.pendown()

t.pencolor('green')

args = [0, -56, 124, 180, 56, -124]

for i in args:

fan(i, 15)

t.home()

args = args[0:4]

for i in args:

underfan(i+15,26)

underfan(56+15,38)

t.dot(30, 'green')

t.dot(24, 'white')

t.dot(16, 'green')

t.dot(10, 'white')

t.hideturtle()

t.done()

蒙德风车

蒙德风车 点击查看代码

#导入海龟库

import turtle as t

from math import *

def fan(heading, angle):

t.seth(heading)

t.right(angle)

t.fillcolor('white')

t.begin_fill()

t.forward(100)

t.left(90)

t.circle(100, angle*2)

t.left(90)

t.forward(100)

t.left(180-angle)

t.end_fill()

p = t.pos()

size = t.pensize()

t.pensize(1)

t.penup()

t.forward(45)

t.pendown()

s = 0.1

for i in range(10):

t.pensize(s)

s=s + 0.3

t.forward(40/10)

a = t.Turtle()

b = t.Turtle()

a.speed(0)

b.speed(0)

t.penup()

t.forward(5)

temp = t.pos()

a.pencolor(t.pencolor())

b.pencolor(t.pencolor())

a.pensize(t.pensize())

b.pensize(t.pensize())

a.penup()

a.goto(temp)

b.penup()

b.goto(temp)

a.seth(t.heading())

b.seth(t.heading())

a.left(90)

b.right(90)

r = sqrt(pow(t.xcor(), 2)+pow(t.ycor(),2))

a.pendown()

b.pendown()

a.circle(r,angle/2)

b.circle(-r,angle/2)

a.hideturtle()

b.hideturtle()

del a

del b

t.penup()

t.goto(p)

t.pendown()

t.pensize(size)

def underfan(starth,takeup):

p = t.pos()

t.fillcolor('lightgreen')

t.begin_fill()

t.seth(starth)

t.forward(30)

t.left(takeup*2)

t.forward(30)

t.left(180-takeup)

t.goto(p)

t.end_fill()

t.speed(0)

t.pensize(3)

t.pencolor('lightgreen')

t.penup()

t.goto(0,-120)

t.pendown()

t.circle(120,360,4)

t.penup()

t.home()

t.pendown()

t.pencolor('green')

args = [0, -56, 124, 180, 56, -124]

for i in args:

fan(i, 15)

t.home()

args = args[0:4]

for i in args:

underfan(i+15,26)

underfan(56+15,38)

t.penup()

t.goto(0, 70)

t.pendown()

t.seth(45)

for i in range(4):

t.left(15)

t.forward(15)

t.right(30)

t.forward(15)

t.left(15)

t.left(90)

### room 风车屋

t.penup()

t.goto(-20,-80)

t.pendown()

t.begin_fill()

t.seth(90)

t.pensize(1)

t.forward(10)

t.seth(71)

t.goto(0,-10)

t.seth(-71)

t.goto(20,-70)

t.seth(-90)

t.forward(10)

t.end_fill()

t.penup()

t.goto(-12,-80)

t.pendown()

t.pensize(3)

t.color('white','lightgreen')

t.begin_fill()

t.goto(-12,-70)

t.seth(90)

t.circle(-12,180)

t.goto(12,-80)

t.end_fill()

t.penup()

t.goto(-6, -80)

t.pendown()

t.pensize(1)

t.color('lightgreen', 'green')

t.begin_fill()

t.goto(-6, -70)

t.seth(90)

t.circle(-6, 180)

t.goto(6, -80)

t.end_fill()

t.penup()

t.home()

t.pendown()

t.dot(30, 'green')

t.dot(24, 'white')

t.dot(16, 'green')

t.dot(10, 'white')

#t.hideturtle()

t.done()

关于颜色

颜色模式可以使用十六进制代码表示,例如

#000000 00表示红色的数值 00表示绿色数值 00表示蓝色数值 表示黑色

#FF00FF FF表示红色数值,00表示绿色数值,FF表示蓝色数值 整体HEX数值表示黄色