【发布时间】:2012-10-26 21:07:17
【问题描述】:
我正在尝试获得一个简单的函数,它需要 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。我尝试将它分成两个打印语句并使用多个递归......但它变成了一个混乱的模式。
我也不允许使用循环。这个让我发疯;除了简单的一行语句之外,我还提出了几种解决方案,但没有一个使用递归。
【问题讨论】:
-
提示:你有一个
if n <= 0子句,但你没有使用它。顺便说一句,丢掉“n*'*'”。