gpt4 book ai didi

Python初学者递归

转载 作者:行者123 更新时间:2023-11-28 22:01:21 25 4
gpt4 key购买 nike

我想得到一个简单的函数,它接受 n 并打印

If n > 0:
print((n*'*')+(n*'!'), end=' ')

并尝试以递归方式获得相同的解决方案。我是递归的初学者,经常得到“更高层次的思考”,但我很难理解必须遵循的代码。

我的基本情况是当 n 为 0 时它不打印任何内容。当 n 大于 1 时,它将打印 n 份 * + n 份!

def repeat(n):
if n <= 0:
pass
else:
repeat(n-1)
print((n*'*')+(n*'!'), end=' ')

现在它打印 n,然后依次打印 n-1 直到 0。我尝试将它分成两个打印语句并使用多个递归..但它变成了一个困惑的模式。

我也不允许使用循环。这个让我发疯;除了简单的一行语句之外,我已经想出了几个解决方案,但没有一个使用递归。

最佳答案

如果您构建并返回一个字符串并在函数外部打印它会更简单,如下所示:

def printPattern(n):
if n <= 0:
return ''
return '*' + printPattern(n-1) + '!'

或者作为单行:

def printPattern(n):
return '*' + printPattern(n-1) + '!' if n > 0 else ''

无论哪种方式,这都有效:

print printPattern(5)
> *****!!!!!

关于Python初学者递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13094440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com