实验一:Python程序设计之turtle库
一、实验目的:
了解Python的基本编程环境,熟悉其主要组成部分和使用。
熟悉turtle库语法元素,了解其绘图坐标体系、画笔控制函数和运动命令函数。通过程序实例,初步掌握Python程序设计的基本概念、编程规则和开发过程。
二、实验内容:
1.启动python3.8.1或者pycharm,新建文件,请根据课本中基本语法部分内容,逐行输入其中,并运行,熟悉python基本语法。
方法一:使用工具栏中的新建文件按钮
方法二:使用菜单栏中的File(文件)——》New file(新建文件)或者是直接使用Ctrl+N来新建。
(1)利用turtle库绘制一个正方形螺旋线,效果如下图所示。
#正方形螺旋线的绘制.py
import turtle
turtle.speed("fastest") #画笔速度(”快:fastest 慢的:slow”)
turtle.pensize(2) #画笔像素/宽度
for i in range(100): #绘画100次
turtle.fd(2*i) #前进;等价于forward(2*i)
turtle.left(90) #绘画矩形的一条边,逆时针移动
turtle.done() #结束绘制
实验结果:
(2)修改上面程序,绘制斜螺旋线,效果如下图所示。
#斜螺旋线.py
import turtle
turtle.speed("fastest")
turtle.pensize(2) #画笔像素
for i in range(100): #绘画100次
turtle.fd(2*i)
turtle.left(90.5) #绘画矩形的一条边,逆时针移动
turtle.done() #结束绘制
实验结果:
(3) 修改上面程序,绘制彩色斜螺旋线,效果如下图所示。
#绘制彩色斜螺旋线.py
import turtle
turtle.speed("fastest")
turtle.pensize(2) #画笔像素
color = ["purple", "blue","red","yellow"] #颜色"green","pink","orange","black"
for i in range(100): #绘画100次
turtle.pencolor(color[i%4]) #更换画笔颜色
turtle.fd(2*i) #前进;等价于forward(2*i)
turtle.left(90.5) #绘画矩形的一条边
turtle.done() #结束绘制
实验结果:
(4)导入turtle,画两个五角星,背景颜色为黑色,五角星为黄色。
#两个五角星.Py
import turtle
def drawstar():
turtle.begin_fill()
for i in range(5):
turtle.forward(100) #前进
turtle.right(144) #顺时针移动
turtle.forward(100)
turtle.left(72)
turtle.end_fill()
turtle.bgcolor("black") #背景颜色
turtle.color("yellow")
turtle.up() #移动之前,先“提笔”
turtle.goto(-200,120) #移动海龟至指定的位置
turtle.down() #移动完毕,再“落笔”
drawstar() #调用函数绘制星星
turtle.up()
turtle.goto(200,120)
#turtle.color("red")
turtle.down()
drawstar()
turtle.done()
结果:
#蟒蛇.Py
import turtle
turtle.setup(700, 400, 200, 200) #画布的设置(宽,高,后两个(坐标)
turtle.penup() #起位置,提起笔移动,不绘制图形,用于另起一个地方绘制
turtle.fd(-330) #前进;等价于forward(-250)
turtle.pendown() #移动时绘制图形,缺省时也为绘制
turtle.pensize(25) #设置画笔的宽度;
color = ["gray", "blue","purple","yellow","red"] #turtle.pencolor("purple") #画笔颜色
turtle.seth(-40) #小乌龟启动时运动的方向,向东南方向40度。
for i in range(5):
turtle.pencolor(color[i%5]) #更换画笔颜色
turtle.circle(40, 96) # 圆(半径,角度)
turtle.circle(-40, 96)
turtle.circle(40, 80/2) # 圆(半径,角度)
turtle.pensize(23) #设置画笔的宽度;
turtle.left(35) #逆时针移动
turtle.fd(40)
turtle.circle(16, 180)
turtle.pensize(27)
turtle.fd(40 * 2/3)
作业1:
#正方形螺旋形的绘制.py
import turtle
turtle.speed("fastest")
turtle.pensize(2)
for i in range(100):
turtle.fd(2*i)
turtle.left(90)
turtle.done()
#正方形螺旋形的绘制(改).py
import turtle
turtle.speed("fastest")
turtle.pensize(1)
turtle.color("purple")
for i in range(100):
turtle.fd(2*i)
turtle.left(90)
turtle.done()
#斜螺旋线.py
import turtle
turtle.speed("fastest")
turtle.pensize(2)
for i in range(100):
turtle.fd(2*i)
turtle.left(90.5)
turtle.done()
#绘制彩色斜螺旋线.py
import turtle
turtle.speed("fastest")
turtle.pensize(2)
color = ["purple", "blue", "red", "yellow"]
for i in range(100):
turtle.pencolor(color[i%4])
turtle.fd(2*i)
turtle.left(90.5)
turtle.done()
#绘制彩色斜螺旋线(改).py
import turtle
turtle.speed("fastest")
turtle.pensize(2)
color = ["red", "orange", "yellow", "green", "blue", "purple"]
for i in range(100):
turtle.pencolor(color[i%6])
turtle.fd(2*i)
turtle.right(90.5)
turtle.done()
#两个五角星.py
import turtle
def drawstar():
turtle.begin_fill()
for i in range(5):
turtle.forward(100)
turtle.right(144)
turtle.forward(100)
turtle.left(72)
turtle.end_fill()
turtle.bgcolor("red")
turtle.color("yellow")
turtle.up()
turtle.goto(-200,120)
turtle.down()
drawstar()
turtle.up()
turtle.goto(200,120)
turtle.down()
drawstar()
turtle.done()
#五星红旗.py
import turtle as t
t.title('用turtle绘制一面五星红旗')
t.setup(height=310,width=410)
t.hideturtle()
t.speed(10)
t.penup()
t.goto(-150,100)
t.pendown()
color='red'
t.pencolor(color)
t.fillcolor(color)
t.begin_fill()
for i in range(2):
t.forward(300)
t.right(90)
t.forward(200)
t.right(90)
t.end_fill()
def pentagram(size,x,y,seth=0):
t.goto(x,y)
t.setheading(seth)
t.backward(size*1.1756/2)
t.pendown()
t.begin_fill()
for i in range(5):
t.forward(size)
t.right(144)
t.end_fill()
t.penup()
t.penup()
t.pencolor('yellow')
t.fillcolor('yellow')
pentagram(51,-100,50)
pentagram(20,-50,80,30)
pentagram(20,-30,60,-30)
pentagram(20,-30,30)
pentagram(20,-50,10,30)
#蟒蛇.py
import turtle
turtle.setup(700,400,200,200)
turtle.penup()
turtle.fd(-330)
turtle.pendown()
turtle.pensize(25)
color=["gray", "blue","purple", "yellow", "red"]
turtle.seth(-40)
for i in range(5):
turtle.pencolor(color[i%5])
turtle.circle(40,96)
turtle.circle(-40,96)
turtle.circle(40,80/2)
turtle.pensize(23)
turtle.left(35)
turtle.fd(40)
turtle.circle(16,180)
turtle.pensize(27)
turtle.fd(40*2/3)
#蟒蛇(改).py
import turtle
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("green")
turtle.seth(-40)
for i in range(4):
turtle.circle(40,80)
turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40*2/3)
turtle.done()