Python 如何避免在递归函数中手动设置变量的初始值?

Python 如何避免在递归函数中手动设置变量的初始值?,python,Python,我为Euler项目5找到了这个解决方案(可以被1到20之间的所有数字平均整除的最小正数是多少?),其中的整数值范围可变,可以平均除: def Euler5(start, end, counter): x = counter while start <= end: if x%counter == x%start: return Euler5(start+1, end, x) else: x +=

我为Euler项目5找到了这个解决方案(可以被1到20之间的所有数字平均整除的最小正数是多少?),其中的整数值范围可变,可以平均除:

def Euler5(start, end, counter):
    x = counter
    while start <= end:
        if x%counter == x%start:
            return Euler5(start+1, end, x)
        else:
            x += counter
    return x
def Euler5(开始、结束、计数器):
x=计数器

而start如果我理解正确,则您希望在第一次调用中手动指定
计数器,而不需要为初始调用指定
计数器==start

为此,您可以将
计数器
设置为默认值
None
,并在函数开始时进行检查,如果出现这种情况,则将
计数器
设置为适当的值:

def Euler5(start, end, counter=None):
    if counter is None:
        counter = start

    x = counter
    while start <= end:
        if x % counter == x % start:
            return Euler5(start+1, end, x)
        else:
            x += counter
    return x
def Euler5(开始、结束、计数器=无): 如果计数器为无: 计数器=开始 x=计数器
如果真是这样的话,我希望能投赞成票谢谢,我很感激。