在特定条件下保存数字的递归函数
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)
我正在尝试在 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)