Нужна помощь для создания Коха Снежинка чисел в Python - PullRequest
0 голосов
/ 04 ноября 2019

Я хочу написать в 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'

И так далее, как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 04 ноября 2019

Это может быть реализовано с использованием рекурсивной функции. Например, вы можете определить

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 голос
/ 04 ноября 2019

Вы можете сделать обычный цикл 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'
...