在特定条件下保存数字的递归函数

Recursive function that saves a number provided certain conditions

我正在尝试在 Python 中创建一个函数,它使用递归来保存某个数字,如果它大于或等于输入中先前提供的另一个数字(并保存在另一个变量上)。

a = 6

def attempts(k):
    n = int(input("How many attempts do you want to make? "))
    if n>=k:
        return n
    else:
        print("You must make at least {} attempts to play!".format(k))
        attempts(k)

b = attempts(a)

问题是,如果我不立即插入 "correct" 数字,变量 "b" 就会变成 NoneType。我怎么解决这个问题? 对不起,任何错别字,我不是母语人士。

将函数的最后一行更改为:

return attempts(k)

目前,从第一个递归调用(如果发生)开始的结果被丢弃,这导致 None 被最外层调用返回。

在 else 语句中,您没有 returning 任何东西,将 b 设置为空。在 else 语句中添加一个 return 语句,如果出现 else 语句,则 return 你希望 b 等于什么。

您的代码现在的工作方式,您应该在您的 else 语句中添加 return attempts(k) 并删除当前的最后一行,attempts(k) 这将工作相同,除了 b 将有一个值。

else 的情况下,您评估 attempts(k) 但不 return 它。所以它被评估为None。变化

attempts(k)

return attempts(k)