Swampy程序包下载地址为: http://thinkpython.com/swampy

Swampy中有个模块“乌龟世界”(TurtleWorld),提供各种函数,可以控制一只乌龟在屏幕爬行并画出其爬行轨迹。

TurtleWorld中提供了几个用来指挥乌龟的函数:

fd:前进  bk:后退 lt:左转 rt:右转

每只乌龟都拿着一只笔,笔可以朝上或朝下:pu:笔朝上  pd:笔朝下

若笔朝下,则会绘制出乌龟走过的轨迹。若笔朝上,则不会绘出轨迹,用于在到达指定位置前不绘出轨迹。

则绘出一个正方形的代码如下所示:

from swampy.TurtleWorld import *
world = TurtleWorld()
bob = Turtle()
for i in range(3):
    fd(bob,100)
    lt(bob)
fd(bob,100)
wait_for_user()
程序运行如下图所示:

写一个函数square ,接受一个形参 t,用来表示一只乌龟。利用乌龟来画一个正方形。写一个函数调用传入bob作为实参来调       用 square函数,并再运行一遍程序。

代码如下:

from swampy.TurtleWorld import *
world = TurtleWorld()
def square(t):
    t=Turtle()
    for i in range(3):
        fd(t,100)
        lt(t)
    fd(t,100)
square('bob')
wait_for_user()
运行结果同上图。

给 square函数再添加一个形参 length。修改函数内容,保证正方形的长度是length,并修改函数调用以提供这第二个实参。再运行一遍程序。使用不同的length测试你的程序。

代码如下所示:

from swampy.TurtleWorld import *
world = TurtleWorld()
def square(t,length):
    t = Turtle()
    for i in range(3):
        fd(t,length)
        lt(t)
    fd(t,length)
square('bob',190)
wait_for_user()
运行结果如下所示:

length设为190,可见正方形面积大了一圈。。。

3.函数 lt和 rt 默认会进行90度的拐弯。但也可以提供第二个形参指定转弯的角度。比如,lt(bob,45)会让bob左拐45度。

复制square函数,并命名为polygon。再添加一个形参n并修改函数体以绘制一个正n变形。

提示:正n边形的拐角是 360/n 度。

程序代码如下所示:

from swampy.TurtleWorld import *
world = TurtleWorld()
def polygon(t,length,n):
    t = Turtle()
    for i in range(n):
        fd(t,length)
        lt(t,360/n)
polygon('Bob',70,8)
wait_for_user()
测试n为8,程序运行结果如下图所示:

4.写一个函数 circle接受代表乌龟的形参 t,以及表示半径的形参 r,并使用合适的长度和边数调用 polygon画一个近似的圆。       使用不同的r值来测试你的函数。

提示:思考圆的周长(circumference),并保证 length * n = circumference。

另一个提示:如果你感觉bob太慢了,可以修改bob.delay来加速。bob.delay代表每次行动之间的停顿,单位是秒。

bob.delay代表每次行动之间的停顿,单位是秒。 bob. delay = 0.01应该能让他跑得足够快。

代码如下:

from swampy.TurtleWorld import *
from math import *
world = TurtleWorld()
def lines(t,n,length,angle):
    for i in range(n):
        fd(t,length)
        lt(t,angle)
def circle(t,r):
    t = Turtle()
    t.delay = 0.01
    circum = 2 * pi * r
    n = int (circum/4)+1
    length = circum / n
    angle = 360.0 / n
    lt(t,angle/2)
    lines(t,n,length,angle)
    rt(t,angle/2)
circle('bob',90)
wait_for_user()

              运行结果如下:

            5.给circle 函数写一个更通用的版本,成为arc。增加一个形参angle,用来表示画的圆弧的大小。这里 angle 的单位是度数,所以当 arc=360时,则会画一个整圆。

             代码如下所示:

  1 from swampy.TurtleWorld import *
  2 from math import *
  4 world = TurtleWorld()
  6 def polyline(t,n,length,angle):
  7     for i in range(n):
  8         fd(t,length)
  9         lt(t,angle)
 11 def arc(t,r,angle):
 12     length = 2 * pi * r * angle /360.0
 13     n = int(length / 3) + 1
 14     arc_length = length / n
 15     arc_angle = float(angle) / n
 16     polyline(t,n,arc_length,arc_angle)
 18 bob = Turtle()
 19 bob.delay = 0.01
 20 arc(bob,70,270)
 22 wait_for_user()

             运行结果如下: t=turtle.Pen() #创建一支画笔,注意“P”为大写 iCirclesCount=30 for x in range (iCirclesCount): #循环30次 t.circle(100) #画一个直. think in python -4接口设计:本章引入了一个实例 来讲解接口方面的知识。准备工作:下载swampy模块,从地址下载,并安装,安装信息可以从网页上查看。swampy模块 提供各种函数,来让一只乌龟在频幕是爬行,并且画出它的爬行路线。开始使用别人的接口:from swampy.TurtleWorld import * #导入模块world = TurtleWorld() #使用该模... 1.Install Python To see if you already have Python, open a terminal (Applications->Accessories->Terminal) and type python on the Linux command line. You should see something like this: Python 2.6.4 (r264:75706, Dec 7 2009, 18:45:15)>>> If so, you have P 首先,你需要安装Pythonturtle模块。这个模块提供了一个简单的方法来创建绘图并在窗口显示它们。 然后,你可以使用以下代码来绘制一只乌龟: import turtle # 创建一个新的乌龟 t = turtle.Turtle() # 使用forward()函数前进 t.forward(100) # 使用left()函数左转 t.left(90) # 再次前进 t.forward... 本节书摘来自异步社区《像计算机科学家一样思考Python》一书的第4章,第4.1节,作者[美]Allen B. Downey,赵普明 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。第4章 案例研究:接口设计4.1 乌龟世界程序包(package)是多个模块的组合;Swampy有一个模块“乌龟世界”(TurtleWorld),它提供各种函数,可以引导一只乌龟在屏幕上爬行,并画出其踪迹。... 图书馆借了本书,一本好书《像计算机科学家一样思考Python》(Think PythonTurtleWorld是作者 Allen B. Downey 写的一个包 swampy 里的一个模块,用来学习编程的。 这个包没有支持 Python3 直接下载安装,只提供了源文件。需要下载了之后调用。 其实官方网站有解释怎么安装,可是一下子就是看不懂。 Swampy for Python 3 ... 一、如何绘制一个任意大小的正方形:import turtle bob=turtle.Turtle() #turtle模块提供了一个叫作Turtle的函数,用于创建一个Turtle对象 bob._delay=1 def square(t,length): for i in range(4): t.fd(length) #请求t去向前移动,fd的参数是移动的距离,以像素(... 源代码+代码解释+小结要用这个程序,首先需要下载一个叫swampy的包(package),也就是一个文件夹或者说是一套模块,其包含了很多的函数。关于package的安装只需提一点,由于模块不大,最好直接安装默认的路径(也就是直接打开shell或者dos提示符的工作路径)里,确保只有一个叫swampy文件夹,里面都是相应的py文件。好,开始我们的问题,在书的第四章,整章作为一个接口学习的案例。问... swampy是《Think Python》一书第四章需要用到的程序包,包含TurtleWorld等模块。 1 下载程序包swampy-2.1.7.zip,解压到E:\aboutpython\swampy-2.1.7文件夹。 (下载地址:https://pypi.org/project/swampy/#files) 2 使用Win+R打开运行窗口,输入CMD进入命令行窗口;    在命令行... 本节书摘来自异步社区《像计算机科学家一样思考Python》一书的第4章,第4.1节,作者[美]Allen B. Downey,赵普明 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。 第4章 案例研究:接口设计 4.1 乌龟世界 程序包(package)是多个模块的组合;Swampy有一个模块“乌龟世界”(TurtleWorld),它提供各种... 作者|黄伟呢整理|杨碧玉出品|数据分析与统计学之美(ID:gh_21c25c7e71d0)头图 | CSDN下载自视觉国为什么要写这篇文章?最近有不少粉丝来问我,Pyt... #quote from 'think python, how to think like a computer scientist'from swampy.TurtleWorld import * world = TurtleWorld() bob = Turtle() print bob for i in range(4): fd(bob, 100) lt(bob) #turn