实验6 turtle绘图与python库应用编程体验
一、实验结论:
1.实验任务1:task1_1.py
程序源码:
1 from turtle import * 2 3 def move(x, y): 4 '''画笔移动到坐标(x,y)处''' 5 penup() 6 goto(x, y) 7 pendown() 8 9 def draw(n, size = 100): 10 '''绘制边长为size的正n变形''' 11 for i in range(n): 12 fd(size) 13 left(360/n) 14 15 def main(): 16 pensize(2) 17 pencolor('red') 18 19 move(-200, 0) 20 draw(3) 21 22 move(0, 0) 23 draw(4) 24 25 move(200, 0) 26 draw(5) 27 28 hideturtle() 29 done() 30 31 main()
运行结果截图:

task1_2.py
程序源码:
1 from turtle import * 2 3 def moveto(x, y): 4 '''把画笔移动至坐标(x, y)处''' 5 penup() 6 goto(x, y) 7 pendown() 8 9 def main(): 10 pensize(2) 11 pencolor('blue') 12 13 moveto(-150, 0) 14 circle(50) 15 16 moveto(0, 0) 17 circle(50, steps = 4) 18 19 moveto(150, 0) 20 circle(50, steps = 5) 21 22 moveto(300, 0) 23 circle(50, steps = 6) 24 25 hideturtle() 26 done() 27 28 main()
运行结果截图:

2.实验任务2:task2_1.py
程序源码:
1 '''以(0,0)为圆心,绘制9个同心圆''' 2 3 from turtle import * 4 5 def moveto(x, y): 6 '''把画笔移至坐标(x,y)处''' 7 penup() 8 goto(x, y) 9 pendown() 10 11 def main(): 12 setup(800, 600) 13 14 radius = 20 # 圆初始半径 15 offset = 20 # 同心圆每次位移量 16 17 for i in range(9): 18 moveto(0, -radius) 19 circle(radius) 20 radius += offset 21 22 hideturtle() 23 done() 24 25 main()
运行结果截图:

task2_2.py
程序源码:
1 '''以(0, 0)为圆心,绘制9个彩色同心圆,色彩随机生成''' 2 3 from turtle import * 4 from random import random 5 6 def moveto(x, y): 7 '''把画笔移至坐标(x,y)处''' 8 penup() 9 goto(x, y) 10 pendown() 11 12 def gen_color(): 13 '''生成一个以rgb三元组表示的颜色值并返回''' 14 return tuple((random() for i in range(3))) 15 16 def main(): 17 setup(800, 600) 18 19 radius = 180 # 圆初始半径 20 offset = 20 # 同心圆每次位移量 21 22 for i in range(8): 23 moveto(0, -radius) 24 color(gen_color()) 25 26 begin_fill() 27 circle(radius) 28 end_fill() 29 30 radius -= offset 31 32 hideturtle() 33 done() 34 35 main()
运行结果截图:

3.实验任务3:task3_1.py
程序源码:
1 from turtle import * 2 3 def square(size = 50, rgb = 'pink'): 4 '''绘制正方形 5 :para: size:int 指定边长 (如未指定参数,使用默认值) 6 :para: c: str 指定画笔颜色值 (如未指定参数,使用默认值) 7 ''' 8 9 pencolor(rgb) 10 for i in range(4): 11 fd(size) 12 left(90) 13 14 def main(): 15 setup(800, 600) 16 speed(0) 17 n = 10 18 19 for i in range(n): 20 square(80,'orange') 21 left(360/n) 22 23 hideturtle() 24 done() 25 26 main()
运行结果截图:

task3_2.py
程序源码:
1 from turtle import * 2 3 setup(800, 600) 4 pencolor('pink') 5 6 n=10 7 for i in range(n): 8 # 绘制一片花瓣 9 for j in range(2): 10 circle(80, 90) 11 left(90) 12 13 right(360/n) 14 15 hideturtle() 16 done()
运行结果截图:

4.实验任务4:task4.py
程序源码:
1 from turtle import * 2 3 setup(800, 600) 4 bgcolor('black') 5 pencolor('white') 6 speed(0) 7 8 angle = 0 9 size = 2 10 11 n = 5 # 螺旋n边形 12 count = 50 # 循环次数 13 for i in range(count): 14 fd(size) 15 angle += 360/n 16 seth(angle) 17 size += 5 18 19 hideturtle() 20 done()
运行结果截图:

5.实验任务5:task5_1.py
程序源码:
1 from turtle import * 2 3 penup() 4 goto(-100,-100) 5 pendown() 6 7 color('black') 8 begin_fill() 9 for i in range(4): 10 fd(200) 11 left(90) 12 end_fill() 13 14 penup() 15 goto(-100,0) 16 pendown() 17 18 color('red') 19 begin_fill() 20 right(45) 21 for i in range(4): 22 fd(100*2**0.5) 23 left(90) 24 end_fill() 25 26 hideturtle() 27 done()
运行结果截图:

task5_2.py
程序源码:
1 from turtle import * 2 3 pensize(2) 4 pencolor('blue') 5 6 r=40 7 for i in range(5): 8 fd(r) 9 left(90) 10 circle(r,90) 11 left(90) 12 fd(r) 13 left(90) 14 r+=20 15 16 hideturtle() 17 done()
运行结果截图:

6.实验任务6:选做task6_2.py
程序源码:
1 from turtle import * 2 3 bgcolor('black') 4 5 color('yellow') 6 begin_fill() 7 left(45) 8 fd(200) 9 left(90) 10 circle(200,270) 11 left(90) 12 fd(200) 13 right(145) 14 end_fill() 15 16 penup() 17 goto(-5,100) 18 pendown() 19 20 color('black') 21 begin_fill() 22 circle(15) 23 end_fill() 24 25 penup() 26 goto(-7,117) 27 pendown() 28 29 color('white') 30 begin_fill() 31 circle(5) 32 end_fill() 33 34 hideturtle() 35 done()
运行结果截图:

7. 实验任务7-8:已自行练习
二、实验总结:
1. 练习turtle绘图常用方法
2. 能使用turtle库熟练编程绘制简单图形
3. 会使用pip命令安装python第三方库
4. 体验使用matplotlib库中的pyplot模块绘制简单图形
5. 体验使用jieba库中的函数实现中文分词,组合词云库wordcloud、绘图库matplotlib绘制词云图

浙公网安备 33010602011771号