我想用python编写一个函数,该函数将使用初始字符串(例如'F'),并将每个'F'替换为'F-F ++ f-f',然后重复。因此,该函数的参数将是一个数字,告诉该函数应该执行多少次。
我没有编写任何代码,因为我不确定从哪里开始,但是我认为我需要使用while循环使其重复。
示例:
snowflake(1)
#It would return
'F'
snowflake(2)
#It would return
'F-F++F-F'
snowflake(3)
#It would return
''F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F'
以此类推,我应该怎么做?
答案 0 :(得分:2)
这可以使用递归函数来实现。例如,您可以定义
def snowflake(in_str, n):
if n == 1:
return in_str
else:
return snowflake(in_str.replace('F', 'F-F++F-F'), n-1)
其中in_str
是您的输入,n
是您需要将此功能应用于in_str
例如,您有
print(snowflake('F', 3))
'F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F'
答案 1 :(得分:1)
您可以执行常规的for
循环:
def snowflake(x):
s = 'F'
for i in range(x-1):
s = s.replace('F', 'F-F++F-F')
return s
运行时将输出:
>>> snowflake(1)
'F'
>>> snowflake(2)
'F-F++F-F'
>>> snowflake(3)
'F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F'