需要帮助在 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'
我想在 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'