Python turtle模块入门与实践

需积分: 50 31 下载量 20 浏览量 更新于2024-08-07 收藏 2.71MB PDF 举报
"这篇文档是《Think Python》的一部分,它介绍了如何使用Python的turtle模块进行图形绘制,并展示了如何创建和使用Turtle对象。turtle模块是一个趣味性与教育性兼备的图形库,常用于初学者学习编程。" 在Python中,turtle模块是一个直观且有趣的图形用户界面库,它允许程序员通过简单的命令控制一个虚拟的“海龟”在屏幕上移动并绘制图形。这个海龟实际上是一个图形对象,它可以沿着指定路径移动并留下痕迹,这些痕迹就构成了图形。在标题提到的"turtle模块-hard_real_time_computing_systems"中,尽管硬实时计算系统通常涉及高度精确和低延迟的系统,但turtle模块并不是专门为此设计的,它的主要用途是教育和简单的图形创作。 在描述中,我们看到了如何使用turtle模块的基本步骤。首先,你需要导入turtle模块,然后创建一个Turtle对象。这可以通过调用`turtle.Turtle()`实现,例如创建一个名为bob的Turtle对象。一旦对象创建,你可以通过调用其方法来控制它的行为。在提供的代码片段中,`turtle.mainloop()`是关键,它启动事件循环,使得窗口保持打开状态并处理用户的交互。 在`mypolygon.py`文件中,`print(bob)`语句会打印出Turtle对象的表示,通常是一个显示其类名和内存地址的字符串,而不是图形本身。这是因为Turtle对象并不是直接可视化的,而是通过其在屏幕上的动作来呈现图形。 《Think Python》这本书强调的是通过编程来解决问题的思维方式。在第一章中,作者指出计算机科学家采用的形式化语言、系统设计以及实验方法,融合了数学、工程和自然科学的元素。学习如何使用turtle模块就是这种思维方式的一个实践,它帮助初学者理解如何将抽象的概念转化为可执行的代码,并通过观察结果来验证预期的行为。 在使用turtle模块时,可以控制Turtle对象的速度、颜色、线条宽度等属性,还可以让它按照特定的路径移动,如直线、曲线或者多边形。此外,还可以设置坐标系统,让Turtle在特定位置开始和结束绘制,甚至可以编写更复杂的程序,让用户通过键盘或鼠标与Turtle进行交互。 turtle模块是Python编程入门中的一个强大工具,它鼓励探索、实验和问题解决,而这些都是成为有效计算机科学家的关键技能。通过学习和使用turtle,不仅可以掌握基本的编程概念,还能培养逻辑思维和创造性表达的能力。

优化一下代码,在以下代码所画的散点图中,将x1作为水平坐标轴,x2作为竖直坐标轴,画出散点图。代码如下:import turtle import random def corr_coef(x, y): n = len(x) mean_x = sum(x) / n mean_y = sum(y) / n term1 = sum((x[i] - mean_x) * (y[i] - mean_y) for i in range(n)) term2 = sum((x[i] - mean_x)**2 for i in range(n)) * sum((y[i] - mean_y)**2 for i in range(n)) return term1 / (term2**0.5) n = random.randint(101, 500) # 生成列表的随机长度 x1 = [random.uniform(0,1) for i in range(n)] x2 = [random.uniform(0,1) for i in range(n)] r = corr_coef(x1, x2) t = turtle.Turtle() t.color('blue') t.shape('circle') # 设置画布大小和坐标范围 turtle.setup(600, 600) turtle.tracer(False) t.speed(10) min_val = min(min(x1), min(x2)) # 计算最小值和最大值以适应绘图区域 max_val = max(max(x1), max(x2)) turtle.screensize(0, 0) # 重置屏幕大小 turtle.setworldcoordinates(min_val-0.1, min_val-0.1, max_val+0.1, max_val+0.1) t.penup() t.goto(x1[0], x2[0]) t.pendown() for i in range(1,n): t.goto(x1[i],x2[i]) t.stamp() # x1和x2为坐标轴的散点图 t.penup() t.goto(min_val-0.05,min_val-0.05) t.pendown() t.goto(max_val+0.05,max_val+0.05) t.penup() t.goto(min_val - 0.05, max_val + 0.05) t.pendown() t.goto(max_val + 0.05, min_val - 0.05) # 绘制相关系数 turtle.penup() turtle.setworldcoordinates(min_val-0.1, min_val-0.1, max_val+0.1, max_val+4) # 设置绘图区域 turtle.goto(sum([min_val, max_val])/2, max_val+2) turtle.setworldcoordinates(min_val-0.1, min_val-0.1, max_val+0.1, max_val+0.1) # 设置坐标轴位置 turtle.mainloop()

2023-04-23 上传