我正在做一个作业,其中我必须使用给定的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
答案 0 :(得分:2)
我能给的最好的提示是完全按照描述来实现描述的每一行。
例如,“创建函数def fractal(length,spaces)”。您已经做到了:
def fractal(length,spaces):
“如果长度为1,则打印出空格数,后跟1个星号。注意,“打印”而不是“返回”。
if length == 1:
print(' ' * spaces + '*')
等等...如果您严格按照说明进行操作,则代码会自行编写。
从描述中可能不清楚的一件事是“打印分形图案”是指使用所描述的参数“调用分形函数”。那是实际的递归。该函数必须自行调用。