Python入门-15:turtle库:递归函数
2018-12-09 20:43
190 查看
五角星的绘制3.0
案例描述
案例分析
递归函数
自己调用自己
完整程序及结果
""" 作者:张梦 功能:绘制五角星绘制重复不同大小的五角星 版本:3.0 新增功能:使用迭代 日期:2018.12.9 """ """引用turtle库""" import turtle """迭代画五角星""" def draw_recursive_pentagram(size): count = 1 # 计数器 while count <= 5: turtle.forward(size) turtle.right(144) # count = count + 1 count += 1 # 还有 -=、*=、/= size += 10 if size <= 80: draw_recursive_pentagram(size) """主函数""" def main (): size = 50 turtle.penup() turtle.backward(100) turtle.pendown() turtle.pensize(2) turtle.color('red') draw_recursive_pentagram(size) turtle.exitonclick() # 不加这个它画完了就自己关掉图那个窗口了,一闪而过 # 加上这个表示鼠标点击才会关闭窗口 if __name__ =="__main__": main()
程序问题
问题:
如果把if改为while,就会出现死循环,前面好的,但是最后一直在画最后一个五角星,不停。
单步调试结果:到最后size是80然后加10变成90,然后跳到下面那个while的时候,它会自动改成80,然后就可以一直自己调用自己
解答:
用while虽然能实现if的功能,但是会出现一直调用自己的死循环,不同于if,如果while的条件不符合,会跳到上一个while即size=80时。
"""迭代画五角星""" def draw_recursive_pentagram(size): count = 1 # 计数器 while count <= 5: turtle.forward(size) turtle.right(144) # count = count + 1 count += 1 # 还有 -=、*=、/= size += 10 while size <= 80: draw_recursive_pentagram(size) 4000
相关文章推荐
- Python入门的36个例子——15 默认参数
- 用Python和Pygame写游戏-从入门到精通(15)
- Python编程从入门到实践动手试一试习题 15-1至15-5
- Python轻松入门-15 变量的作用范围
- Python爬虫入门教程 15-100 石家庄政民互动数据爬取
- python opencv入门 Canny边缘检测(15)
- python3.5入门笔记(15) 线程
- Python 入门教程 15 ---- Advanced Topics in Python
- python从入门到实践,习题15-5重构
- 【python】编程语言入门经典100例--15
- 零基础入门学习Python(15)--格式化
- 零基础入门学习Python(15)--格式化
- Python从入门到实践 习题15-6
- 零基础入门学习Python(15):二进制存储 pickle 和异常处理
- 用Python和Pygame写游戏-从入门到精通(15)
- Python 学习入门(15)—— Tornado
- 用Python和Pygame写游戏-从入门到精通(15)
- python入门系列15―——shelve
- Python一天入门15:面向对象的编程2-类与对象的方法
- Python入门笔记(15):对文件的操作(1)