gpt4 book ai didi

python - 控制python函数中的递归深度

转载 作者:行者123 更新时间:2023-12-01 03:27:27 28 4
gpt4 key购买 nike

我有以下代码:

from turtle import *
speed(0)

def polygon(xangle, steps):
n = 360 // xangle # number of sides required for chosen exterior angle
for i in range(n):
forward(steps)
right(xangle)

def corner_polygons(xangle, steps):
n = 360 // xangle
for i in range(n):
draw_polygon(xangle, steps//5) # draw smaller polygon
forward(steps)
right(xangle)

def double_corner_polygons(xangle, steps):
n = 360 // xangle
for i in range(n):
corner_polygons(xangle, steps//5)
forward(steps)
right(xangle)

第一个函数绘制一个具有指定外角 (xangle) 且边长等于 steps 的多边形。第二个函数绘制与之前相同的多边形,但现在在每个角上放置一个较小的多边形。第三个函数更深入一层,例如:

double_corner_polygons(60, 150)

给出:

enter image description here

我想添加另一个参数,recursions 来控制绘图的深度,这样我就不必每次都编写新函数。我似乎不太明白。到目前为止我的尝试:

def corner_polygons_recursive(xangle, steps, recs):
n = 360 // xangle
for i in range(n):
for j in range(1, recs+1):
corner_polygons(xangle, steps//5*j)
forward(steps)
right(xangle)

最佳答案

它可能比你想要的更简单,也许是这样的:

import turtle

def corner_polygons_recursive(angle, side, depth):

if depth < 1:
return

n = 360 // angle

for _ in range(n):
corner_polygons_recursive(angle, side / 3, depth - 1)
turtle.forward(side)
turtle.right(angle)

corner_polygons_recursive(60, 150, 4)

turtle.exitonclick()

输出

enter image description here

关于python - 控制python函数中的递归深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41298788/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com