task1_1
实验源码
1 from turtle import * 2 3 4 def move(x, y): 5 penup() 6 goto(x, y) 7 pendown() 8 9 10 def draw(n, size=100): 11 for i in range(n): 12 fd(size) 13 left(360/n) 14 15 16 def main(): 17 pensize(2) 18 pencolor('red') 19 20 move(-200, 0) 21 draw(3) 22 23 move(0, 0) 24 draw(4) 25 26 hideturtle() 27 done() 28 29 30 main()
运行截图
task1_2
实验源码
1 from turtle import * 2 3 4 def moveto(x, y): 5 penup() 6 goto(x, y) 7 pendown() 8 9 10 def main(): 11 pensize(2) 12 pencolor('blue') 13 14 moveto(-150, 0) 15 circle(50) 16 17 moveto(0, 0) 18 circle(50, steps=4) 19 20 moveto(150, 0) 21 circle(50, steps=5) 22 23 moveto(300, 0) 24 circle(50, steps=6) 25 26 hideturtle() 27 done() 28 29 30 main()
运行截图
task2_1
实验源码
1 from turtle import* 2 3 4 def moveto(x, y): 5 penup() 6 goto(x, y) 7 pendown() 8 9 10 def main(): 11 setup(800, 600) 12 radius = 20 13 offset = 20 14 15 for i in range(9): 16 moveto(0, -radius) 17 circle(radius) 18 radius += offset 19 20 hideturtle() 21 done() 22 23 24 main()
运行截图
task2_2
实验源码
1 from turtle import* 2 from random import random 3 4 5 def moveto(x, y): 6 penup() 7 goto(x, y) 8 pendown() 9 10 11 def gen_color(): 12 return tuple(random() for i in range(3)) 13 14 15 def main(): 16 setup(800, 600) 17 18 radius = 180 19 # radius = 20 20 offset = 20 21 22 for i in range(9): 23 moveto(0, -radius) 24 color(gen_color()) 25 26 begin_fill() 27 circle(radius) 28 end_fill() 29 30 radius -= offset 31 # radius += offset 32 33 hideturtle() 34 done() 35 36 37 main()
运行截图
答:通过半径由小到大填色回覆盖前一填色,无法获得彩色同心圆。
task3_1
实验源码
1 from turtle import * 2 3 4 def square(size=50, rgb='pink'): 5 pencolor(rgb) 6 for i in range(4): 7 fd(size) 8 left(90) 9 10 11 def main(): 12 setup(800, 600) 13 speed(0) 14 15 n = 3 16 for i in range(n): 17 square(80) 18 left(360/n) 19 20 hideturtle() 21 done() 22 23 24 main()
运行截图
task3_2
实验源码
1 from turtle import * 2 3 4 setup(800, 600) 5 pencolor('pink') 6 7 n = 4 8 for i in range(n): 9 for j in range(2): 10 circle(80, 90) 11 left(90) 12 13 right(360/n) 14 # left(360/n) 15 16 hideturtle() 17 done()
运行截图
task4
实验源码
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 = 4 12 count = 100 13 for i in range(count): 14 fd(size) 15 angle += 360/n + 1 16 seth(angle) 17 size += 5 18 19 hideturtle() 20 done()
运行截图
task5_1
实验源码
1 from turtle import * 2 3 4 def moveto(x, y): 5 penup() 6 goto(x, y) 7 pendown() 8 9 10 def square(size): 11 for i in range(4): 12 fd(size) 13 left(90) 14 15 16 def main(): 17 moveto(-100, -100) 18 color('black') 19 20 begin_fill() 21 square(200) 22 end_fill() 23 24 moveto(0, -100) 25 color('red') 26 27 begin_fill() 28 circle(100, steps=4) 29 end_fill() 30 31 hideturtle() 32 done() 33 34 35 main()
运行截图
task5_2
实验源码
1 from turtle import * 2 3 size = 40 4 n = 5 5 pencolor('blue') 6 pensize(2) 7 for i in range(n): 8 goto(size, 0) 9 seth(90) 10 circle(size, 90) 11 goto(0, 0) 12 seth(0) 13 size += 20 14 15 hideturtle() 16 done()
运行截图
task6_1
实验源码
1 from turtle import* 2 from random import random 3 4 5 def moveto(x, y): 6 penup() 7 goto(x, y) 8 pendown() 9 10 11 def rect(wide=20, high=50): 12 for i in range(2): 13 fd(wide) 14 left(90) 15 fd(high) 16 left(90) 17 18 def gen_color(): 19 return tuple(random() for i in range(3)) 20 21 22 def main(): 23 setup(800, 600) 24 start = -200 25 offset = 20 26 for i in range(20): 27 moveto(start, 0) 28 color(gen_color()) 29 30 begin_fill() 31 rect() 32 end_fill() 33 34 start += offset 35 36 hideturtle() 37 done() 38 39 40 main()
运行截图
task7
实验源码
1 from matplotlib import pyplot as plt 2 3 def func(x): 4 return 4*x*(1-x) 5 6 7 def gen_lst(x, n): 8 ans = [] 9 for i in range(n): 10 t = func(x) 11 ans.append(t) 12 x = t 13 return ans 14 15 16 def main(): 17 n = 30 18 lst1 = gen_lst(0.2, n) 19 lst2 = gen_lst(0.2000001, n) 20 x = list(range(1, 31)) 21 plt.plot(x, lst1, 'ro-', x, lst2, 'bs-') 22 plt.xticks(list(range(1, 31, 4))) 23 plt.legend(['x = 0.2', 'x = 0.2000001']) 24 plt.show() 25 26 27 main()
运行截图