一个 "count up" 如何使用仅使用一个参数的递归函数?
How does one "count up" using a recursive function using only one parameter?
函数的目的很简单。使用 仅一个 int 类型的参数, 它递归地打印参数指示的行数。第一行包含一个字符,第二行(假设参数不是一个)两个字符,依此类推,直到打印包含 n 个字符的第 n 行。
只有一个参数并且没有在函数外声明变量,我不知道如何为我的非伪迭代的基本情况正确建立一个流畅的参考框架。 "counting down" 我可以抽象地表示的是缺席的减少,这显然需要一些东西来代替它。因为输出只能是一个字符,所以我考虑过制作一个非常长的字符串并使用参数将其切片适当的次数,但后来因为缺乏创造力而拒绝了这个想法。
是否有解决这个问题但我没有看到的方法?
你想多了。你想递归到基本情况,然后在返回的路上打印行:
def count(num):
if num > 1:
count(num-1)
print("|"*num)
示例输出:
>>> def count(num):
... if num > 1:
... count(num-1)
... print("|"*num)
...
>>> count(4)
|
||
|||
||||
您可能会认为必须先打印,然后进行递归调用。但是在这种情况下你需要先进行递归调用然后打印,这会改变顺序。
函数的目的很简单。使用 仅一个 int 类型的参数, 它递归地打印参数指示的行数。第一行包含一个字符,第二行(假设参数不是一个)两个字符,依此类推,直到打印包含 n 个字符的第 n 行。
只有一个参数并且没有在函数外声明变量,我不知道如何为我的非伪迭代的基本情况正确建立一个流畅的参考框架。 "counting down" 我可以抽象地表示的是缺席的减少,这显然需要一些东西来代替它。因为输出只能是一个字符,所以我考虑过制作一个非常长的字符串并使用参数将其切片适当的次数,但后来因为缺乏创造力而拒绝了这个想法。
是否有解决这个问题但我没有看到的方法?
你想多了。你想递归到基本情况,然后在返回的路上打印行:
def count(num):
if num > 1:
count(num-1)
print("|"*num)
示例输出:
>>> def count(num):
... if num > 1:
... count(num-1)
... print("|"*num)
...
>>> count(4)
|
||
|||
||||
您可能会认为必须先打印,然后进行递归调用。但是在这种情况下你需要先进行递归调用然后打印,这会改变顺序。