需要帮助在 Python 中创建数字的科赫雪花

Need help to create a Koch Snowflake of numbers in Python

我想在 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'

等等,我应该怎么做?

这可以使用递归函数来实现。例如你可以定义

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'

您可以进行正常的 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'