[我正在尝试在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)
问题是,如果我不立即插入“正确的”数字,则变量“ b”变为NoneType。我怎么解决这个问题?对不起任何错字,我不是母语人士。
将函数的最后一行更改为:
return attempts(k)
当前,从第一个递归调用开始的结果(如果发生)被丢弃,这导致最外层调用返回None
。
在else语句中,您没有返回任何内容,设置b
等于无。在else语句中添加return语句,如果else语句出现,则返回想要b等于的任何内容。
您的代码现在的工作方式,您应该在else语句中添加return attempts(k)
并删除当前的最后一行,attempts(k)
这将工作相同,只不过b具有一个值。
在else
情况下,您评估attempts(k)
,但不返回。因此它被评估为None
。更改
attempts(k)
收件人
return attempts(k)