-2

我有这个代码:

def get_girlfriend():
  res = input("Will you go out with me? ")
  if (res == "y"):
    print("We've done it bois")
    return
  get_girlfriend()

但我不断收到此错误:

RecursionError: maximum recursion depth exceeded

有人可以帮忙吗?

4

3 回答 3

0

python中的默认递归深度是1000,但是如果需要增加深度(不推荐);

import sys
sys.setrecursionlimit(needed_depth)

但是,如果您尝试运行简单程序而没有任何错误,请尝试捕获它们并处理或设置递归的基本限制。

设置递归的基本限制:

def get_girlfriend(n=0):
    res = input("Will you go out with me? ")
    if (n < 100 and res == "y"):
        print("We've done it bois")
        return
    get_girlfriend(n+1)

尝试捕获错误:

def get_girlfriend():
    res = input("Will you go out with me? ")
    if (res == "y"):
        print("We've done it bois")
        return
    try:
        get_girlfriend()
    except RecursionError:
        return

一个函数应该总是有一个出口网关。

于 2021-11-11T04:49:51.703 回答
0

的默认最大递归深度为python1000。

因此,当函数调用自身 1000 次时,您会收到错误消息。我不知道您的代码旨在实现什么目标,但是如果语句满足您的条件,则通过添加一些条件,您将能够终止。

于 2021-11-11T04:13:10.853 回答
-1
def get_girlfriend():
    res = input("Will you go out with me? ")
    answer = res
    if (answer == "y"):
        print("We've done it bois")

get_girlfriend()

如果这就是你的意思。但是,如果您键入 y,这是输出

你会和我出去吗?y 我们已经做到了 bois

和其他人,但你:你会和我出去吗?n

于 2021-11-11T04:18:14.180 回答