如何使用仅使用一个参数的递归函数进行“计数”?

2024-06-25 12:38:55 发布

您现在位置:Python中文网/ 问答频道 /正文

该函数的目的非常简单。只使用一个int类型参数,它递归打印参数指定的行数。第一行包含一个字符,第二行(假设参数不是一个)包含两个字符,依此类推,直到打印包含n个字符的第n行

由于只有一个参数,并且没有在函数外声明变量,我不知道如何正确地为我的基本情况建立一个非伪迭代的流动参考框架。我可以抽象地表示的“倒计时”是减少缺勤,这显然需要一些东西来代替缺勤。因为输出只需要一个字符,我曾考虑过制作一个长得离谱的字符串,并使用参数将其切分适当的次数,但后来由于缺乏创造性而拒绝了这个想法

有没有解决这个问题的办法,我只是没有看到


Tags: 函数字符串目的框架声明类型参数情况
2条回答

你想得太多了。您希望递归到基本情况,然后在返回时打印行:

def count(num):
    if num > 1:
        count(num-1)
    print("|"*num)

样本输出:

>>> def count(num):
...     if num > 1:
...         count(num-1)
...     print("|"*num)
... 
>>> count(4)
|
||
|||
||||

您可能会陷入必须先打印,然后进行递归调用的想法。但是在这种情况下,您需要首先进行递归调用,然后进行打印,这会改变顺序

相关问题 更多 >