【问题标题】:Python recursive counter [duplicate]Python递归计数器[重复]
【发布时间】:2018-03-11 15:19:51
【问题描述】:

我需要一个 Python 中的递归计数器,从 1 计数到 n。

  def countup(n):
       a=1
       def hoch(a,n):
          if a<=n:
             print(a)
             a+=1
             hoch(a,n)
       hoch(a,n)

【问题讨论】:

  • 作为德国人,您应该知道“Wieso einfach, wenn es auch kompliziert geht”这句明智的话。 (如果可以做得很复杂,为什么要简单?
  • for x in range(1,n): print(x) 有什么问题?这是如何“递归”的?

标签: python python-3.x counter


【解决方案1】:

这里有一个解决方案。

def countup(n):
    if n >= 0:
        countup(n - 1)
        print(n)
countup(10)

基本上,如果传递给countup 的数字大于0,它会再次递归运行countup,将下面的下一个数字传递给它。

它只使用 1 个函数。

附:它已经存在于这里:

python recursive function that prints from 0 to n?

【讨论】:

    【解决方案2】:

    假设您必须递归执行此操作(这不是最好的方法),另一种选择是将a 作为可选参数传递给countup()

    def countup(n, a=1):
        if a <= n:
            print(a)
            countup(n, a+1)
    
    countup(10)
    

    【讨论】:

      【解决方案3】:

      你可以做非常简单的没有递归,这不是理想的方式。

      def countup(n):
          print(*range(n + 1), sep='\n')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-21
        • 2017-05-07
        • 2020-03-19
        • 2016-05-06
        • 1970-01-01
        • 2020-08-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多