Skip to main content
 首页 » 编程设计

python之在递归函数中收集参数

2025年05月04日18del

我目前正在学习 Python,但我在修改此函数以按我希望的方式工作时遇到了问题。这是一个从两个整数中找到 gcd 的递归函数。 data 是一个包含两个整数的元组。如何修改此递归函数以使用一个参数?

def gcd(data): 
    a, b = data 
    if b == 0: return a 
    return gcd(b, a % b) 

如果我这样执行,我得到

TypeError: checkio() 采用 1 个位置参数,但给出了 2 个

如果我尝试通过定义 def gcd(*data): 来收集参数,我会得到

ValueError:需要超过 1 个值才能解包。

这可能吗?

请您参考如下方法:

你的函数需要一个变量(一个元组),但你传递了两个变量,试试这个:

return gcd((b, a % b))