版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lanxingbudui/article/details/87965530
上一次,使用函数使得代码简洁了很多,但是还是不够,这次想讲函数和循环放在一起,引入递归函数的概念:
绘制形状的函数,自己更新参数,然后再将更新后的参数加入到函数中,自己调用自己的函数。
"""
作者:lanxingbudui
功能:五角星的绘制
版本:3.0
日期:20190227
增强功能:加入循环操作绘制重复不同大小的图形
增强功能:将函数与循环结合,使用递归函数
"""
import turtle
def draw_recursive_pentagram(size):
"""
递归函数绘制五角星
"""
count = 0
while count < 5:
turtle.forward(size)
turtle.right(144)
count += 1
size += 20
if size <= 200:
draw_recursive_pentagram(size)
def main():
"""
主函数
"""
turtle.pencolor('red')
turtle.pensize(2)
size = 100
draw_recursive_pentagram(size)
# 点击鼠标退出
turtle.exitonclick()
if __name__ == '__main__':
main()
瞬间主函数变得无比简单了,一行参数赋值,一行调用函数,两行代码就能绘制重复不同大小的五角星了。
递归函数(迭代函数)的逻辑:
1、程序先运行while条件,绘制一个五角星
2、参数增加
3、判断是否符合if条件
4、符合条件,调用自己函数,使用新的参数值;不符合条件终止运行程序。