使用递归的分形绘图

Fractal drawing using recursion

我正在做一个作业,您必须在其中使用给定的 int 创建分形图,我对如何在此处使用递归感到困惑。

我并不是在寻求一个完整的解决方案,而只是让我朝着正确的方向开始。这是我目前所拥有的:

def fractal(length, spaces):

    if length == 1:
        print(' ' * int(spaces) + '*')
    else:
        print(fractal(length//2*'*',spaces*' '))
        print(fractal(spaces*' ',length*'*'))
        print(fractal(length//2*'*',spaces+(length//2)*' '))




while True:
    userlength = input('Enter an integer > 0:\n')
    try:
        userlength = int(userlen)
    except:
        continue
    if userlength < 0:
        continue
    else:
        fractal(userlength,userlength)
        break

我能给出的最好提示是完全按照描述实施描述的每一行。

例如,"Create a function def fractal(length,spaces)"。你做到了:

def fractal(length,spaces):

"If length is 1 print out the number of spaces followed by 1 star. Note "print" 而不是 "return".

    if length == 1:
        print(' ' * spaces + '*')

等等...如果您完全按照描述进行操作,代码将自行编写。

从描述中可能不清楚的一件事是 "print the fractal pattern" 表示 "call the fractal function" 以及所描述的参数。这才是真正的递归。该函数必须调用自身。