python编写代码运用递归画图形_python数据结构与算法 22 递归图形

上节中我们已经知道有些问题,如果用递归解决变得非常容易。但是仍然很难在大脑里形成一种模型或可视化的方法,让我们直觉地明白函数递归过程到底发生了什么。这一节我们引入几个例子,用递归的方法画几个有趣的图形,通过观察图形的生成,也许能帮助你洞察递归的过程,从而学会递归的方法。

我们要用的工具是python的图形模块turtle,这个模块伴随python的全部版本而且很容易使用,语法也简单。你可以创建一个turtle(乌龟),让它向前,向后,左转,右转等,它的尾巴能抬起或落下,如果落下,当它运动的时候就画出一条轨迹线。为了增加艺术感,可以修改线条的宽度和墨水的颜色

这里有一个例子来说明turtle的基本功能。这段代码用turtle递归地画一段螺旋线。首先引入模块,然后创建一个turtle对象,并新建一个窗口对象作为画布。下面定义drawSpiral函数。递归函数的基点,是每次运动的距离降到不大于0。向基点运动的方式,是每次画线之后,右转90度,然后再次画线,不过这次的距离就减少。在代码的最后会看到调用函数myWin.exitonclick(),这是一个小方法,作用是turtle对象进入等待模式,如果在窗口里点击,即清理并退出运行。

importturtle

myTurtle=turtle.Turtle()

myWin=turtle.Screen()

defdrawSpiral(myTurtle,lineLen):

iflineLen>0:

myTurtle.forward(lineLen)

myTurtle.right(90)

draw

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值