使用递归的分形绘图
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" 以及所描述的参数。这才是真正的递归。该函数必须调用自身。
我正在做一个作业,您必须在其中使用给定的 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" 以及所描述的参数。这才是真正的递归。该函数必须调用自身。