【问题标题】:Is This An Example Of Recursion (Python) [duplicate]这是递归的一个例子吗(Python)[重复]
【发布时间】:2017-03-30 10:12:59
【问题描述】:

您好,我很难确切地理解什么是递归,这是我正在编写的程序(一个蛇游戏)的要求,我无法找到归类为递归的明确定义。有人能告诉我下面的代码是否就是一个例子吗?

while True: #recieve input player_name = input("Enter a name between 0 and 20 characters: ") #if length is within boundaries the loop is stopped if len(player_name) > 0 and len(player_name) <= 20: break #if the name is outwith the boundaries a message is printed and the loop restarts print("Too long/short, try again.")

【问题讨论】:

  • 不,这不是递归;你需要一个调用自身进行递归的函数
  • 不,这不是递归的例子。递归需要一个函数调用自己。
  • while循环不是递归。
  • 递归只是让一个函数在函数内调用自身,例如def something(): print('a'); something()
  • 如果你需要写它,那一定是为了做一些家庭作业或其他什么,我敢打赌它附带了某种教学材料——它应该包含对递归的解释。

标签: python validation recursion


【解决方案1】:

循环有两种类型:

1.迭代:

这里使用 for()、while()、do-while() 循环重复一组语句

2。递归:

这里你调用一个从内部调用相同函数的函数。

例子:

def factorial(n):
if n == 0:
    return 1
else:
    return n * factorial(n - 1)

这里的函数 factorial() 正在调用自身,直到 n 的值变为 0。语句 n==0 被称为终止递归的基本/终止条件。

【讨论】:

    【解决方案2】:

    当您根据自身定义某事物时,您就有了递归。例如,以下“走楼梯”的定义是递归的:

    “走楼梯”:=

    如果还有一步:走一步,“走楼梯”
    否则如果没有步骤:停止

    在编程中,递归最常以递归函数定义的形式出现,即调用自身的函数。

    这是一个示例函数,它计算某个数 n > 0 的总和 1 + 2 + 3 + ... + n。

    >>> def cumsum(n):
    ...     if n == 1:
    ...         return n
    ...     else:
    ...         return n + cumsum(n - 1)
    ... 
    >>> cumsum(5)
    15
    >>> 1+2+3+4+5
    15
    

    使这个函数递归的原因是cumsum 用于cumsum 本身的定义中。

    由于您的代码中没有任何递归调用,因此它不是递归示例。您的 while True 循环是迭代的一个示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-30
      • 2016-04-25
      • 1970-01-01
      • 2017-10-05
      • 2011-06-25
      • 2021-04-08
      • 1970-01-01
      • 2016-03-14
      相关资源
      最近更新 更多